任意の Windows ネイティブの起動方法 (cmd.exe、Total Commander のコマンド ライン) を使用して任意のパスから Cygwin.bat を呼び出すと、そのディレクトリに準備された bash が起動するように Cygwin を設定することは可能ですか?
たとえば、cmd.exe を実行して次の操作を実行します (Cygwin.bat が にある場合PATH
)。
C:\Users\Me>cd testdir
C:\Users\Me\testdir>dir /b
myfile1
myfile2
C:\Users\Me\testdir>Cygwin
Cygwin ウィンドウが開き、中断したところに戻ります。
me@here /cygdrive/c/Users/Me/testdir
$ ls
myfile1* myfile2*
me@here /cygdrive/c/Users/Me/testdir
ご覧のとおり、Cygwin プロンプトが表示されたとき、私は ではtestdir
なく にすでにいます/home/me
。
(これを使用するより一般的なシナリオは、Total Commander のコマンド ラインから Cygwin を実行することですが、同じように動作するはずです。)
これを実現するにはどうすればよいでしょうか?
答え1
私はあなたのために何かをハックすることができました。これをあなたのパスのバッチファイルに入れます(私は と名付けcygwin.bat
、 と入力して呼び出しましたcygwin.bat
)。
@echo off
set pth=%CD:~2,99%
set pth=%pth:\=/%
set drv=%CD:~0,1%
set "fullpath=/cygdrive/%drv%%pth%"
C:\cygwin\bin\bash.exe --login -i -c "cd ""%fullpath%""; exec /bin/bash"
答え2
これよりシンプル .bat
ファイル(.cmd
私の場合)は正常に動作しています私にとって:
c:\CygWin\bin\bash.exe --login -i -c "export CD='%CD%'; cd \"$CD\"; exec /bin/bash"
以下で動作テスト済み:
- CMです。
- 総司令官。
- リモート SSH セッション。
- スタートメニュー --> 実行 (この場合は で開きます
C:\Users\Me
)。