「ディレクトリをCygwinで開く」を右クリックメニューで

エクスプローラでファイル操作中に,今いるディレクトリでCygwinを開きたい場合がある.nkf文字コードを変換したりとかスクリプトを適用したりとかで.
いくつかスクリプトを書けばできる.

まず,バッチファイルの作成.
C:\Cygwin (インストールディレクトリ)に,以下のファイルを作成する.

OpenInCygwin.bat

@start C:\cygwin\bin\mintty -e /bin/bash -l -c "{ cd ""%~1""; exec /bin/tcsh -i; }"

これは,mintty を開き,引数で指定されたディレクトリに移動し,tcsh (好きなシェル)を実行する,というバッチファイルだ.
このバッチファイルを,右クリックメニュー(コンテクストメニュー)から実行したいのだが,以下のようにVBスクリプトを経由しないとうまく動かない.

そこで,C:\Cygwin (インストールディレクトリ)に,以下のファイルを作成する.

OpenInCygwin.vbs

cmd = "c:\cygwin\OpenInCygwin.bat"

Set ws = CreateObject("Wscript.Shell")
Set arg = WScript.Arguments
If arg.Count = 0 Then
  ws.Run cmd, vbHide
Else
  ws.Run cmd & " " & arg(0), vbHide
End If

で,右クリックメニューの「送る」に,このVBスクリプトへのショートカットを追加する.Cygwin のインストールディレクトリが異なる場合は,cmd の中身を変える.

なお,右クリックメニューの「送る」に追加する方法には,

C:\Users\USER_NAME\AppData\Roaming\Microsoft\Windows\SendTo

にショートカットを置けばよい.

なお,「送る」ではなく,コンテクストメニューに直接追加することもできるらしいが,ソフトをインストールする必要があるみたいなので,やめておくことにした.