2013-10-02
エクスプローラでファイル操作中に,今いるディレクトリで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
にショートカットを置けばよい.
なお,「送る」ではなく,コンテクストメニューに直接追加することもできるらしいが,ソフトをインストールする必要があるみたいなので,やめておくことにした.