Cygwinをエクスプローラー右クリックで任意のディレクトリをカレントにして起動する方法 Windows7&Windows8編

追記

この記事の方法よりももっと簡単にできる方法を教えて頂きました。 ぷにぽん閣下さん、ありがとうございます。 具体的な手順をこちらにまとめましたので試してみてください。すごく簡単にできておすすめです。 eng-notebook.com

以前、こちらでCygwinを任意のディレクトリをカレントにして起動する方法をご紹介しました。

eng-notebook.com

今回はこれのWindows7&Windows8編です。

今回ご紹介する設定を行うと、2種類の方法でCygwinをエクスプローラから起動することが出来ます。

  • フォルダーアイコンを右クリックしてCygwinを起動
  • フォルダーのバッググラウンド(背景部分)を右クリックしてCygwinを起動

前者はこんな感じ 20131215_folder.png

後者はこんな感じ

20131215_background.png

画像はWindows8のものですが、Windows7も同様です。 両方ともコンテキストメニューの[cygwin]をクリックすると、そのフォルダをカレントにしてCygwinが立ち上がります。この画像の例だと、両方ともworkフォルダをカレントにCygwinが起動します。僕は特に2をヘビーに使います。すごく便利ですよ。

設定方法

まず、以下の内容でファイルを作成してください。cygwin.vbsはC:¥cygwinに、cygwin.regはデスクトップなど分かりやすいところに作成してください。

cygwin.vbs

Option Explicit

Dim objShell
Set objShell = CreateObject("WScript.Shell")

Dim arg
Set arg = WScript.Arguments

Dim colEnv
Set colEnv = objShell.Environment("Process")
colEnv.Item("CHERE_INVOKING") = "yes"

objShell.CurrentDirectory = arg(0)

Dim process
process = objShell.Run("C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -", 1)

cygwin.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cygwin]
"NoWorkingDirectory"=""
@="cygwin"

[HKEY_CLASSES_ROOT\Directory\shell\cygwin\command]
@="wscript C:\cygwin\cygwin.vbs \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin]
"NoWorkingDirectory"=""
@="cygwin"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin\command]
@="wscript C:\cygwin\cygwin.vbs \"%V\""

最後にcygwin.regをダブルクリックしてレジストリに追加します。これで設定完了です。

ここで紹介したのはCygwinをC:¥cygwinにインストールした場合です。他の場所にインストールした場合は、cygwin.vbs, cygwin.reg内のパスをインストールパスに合わせて変更してください。

ほんとに便利なのでCygwin使いの方はぜひ試してみてください。