任意のディレクトリで Cygwin を起動しますか?

任意のディレクトリで Cygwin を起動しますか?

任意の 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)。

関連情報