2013年1月2日水曜日

Windows7でbashをここで開く

ご存知の方も多いと思いますが、
Windows7のエクスプローラで任意のフォルダを
[Shift]キーを押しながら右クリックすると、
コンテキストメニューに[コマンドウィンドウをここで開く]メニューが現れ、
これを実行するとコマンドプロンプト(いわゆるDOS窓)が、
選択したフォルダをカレントディレクトリとして開かれます。
Cygwinを入れてbashにパスを通していると、ここで
> bash
を実行すればそのままUNIXライクな環境へ突入できるのですが、
そもそもWindowsのシェルを使う機会など皆無で全部bash上で何とかする、
さらにはあまりに頻繁にbashを使うので[Shift]キーを押すのも面倒というような私は、
[bashをここで開く]的メニューを追加しています。
まあメニュー名は[bash]なんですけどね。

WindowsXPではフォルダのコンテキストメニューは通常手順で追加できるのですが、
Windows7ではなぜか設定手段が用意されておらず、
レジストリを直接触るしか方法がありません。
そこで、"regedit.exe"を実行し、
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell]キーを開いて
そこで[bash]キーを作成し、その下にさらに[command]キーを作成します。
その[(規定値)]に
C:\cygwin\cygwin_c.bat "%1"
を設定すれば完了です。
なお"C:\cygwin\cygwin_c.bat"の中身は
@echo off
chcp 932
bash
としています。
まあ"chcp 932"は普通は入れる必要ないでしょうけど。

さて、このように設定してもbashが開かれるときに、
なぜか右クリックしたフォルダの親ディレクトリがカレントになっています。
これXPのときはそんなことはなかったので、
Windows7のバグぐらいな感覚でずっと使ってきたのですが、
ふと思い立って何とかならないか考えてみたところ…
簡単です。"C:\cygwin\cygwin_c.bat"の中身を
@echo off
chcp 932
cd /D %1
bash
にすればいいのです。
なぜこんなにも簡単に気が付くことを考えようともしなかったのか、
われながら情けないです。

0 件のコメント:

コメントを投稿