Windowsコマンドプロンプトからgit-bashをいくつかの方法で起動できます。
"C:\Program Files\Git\bin\sh.exe"
"C:\Program Files\Git\git-bash.exe"
"C:\Program Files\Git\usr\bin\mintty.exe"
そのような呼び出しを使用して、特定のディレクトリでgit-bashを起動したいと思います。
コンテキストについては、SAS拡張エディター内から実行しています。実際の呼び出しは
%sysexec(start "" "C:\Program Files\Git\bin\sh.exe" && exit);
SASに不慣れな方のために、%sysexec
はWindowsコマンドプロンプトのインスタンスを開き、引数として指定されたコマンドを発行します。驚くほどうまくいきます。ただし、git-bashをホームだけでなく、特定のディレクトリで起動できるようにしたいと考えています。
このために、.bashrc
にエントリを作成できます。
cd /c/new/starting/dir
ただし、これを行う際の問題は、特定のフォルダーのコンテキストメニューなどでgit-bashを開くたびに、デフォルトのディレクトリが.bashrc
のディレクトリになることです。
git-bashの開始オプションが存在する--cd-to-home
または--cd=<path>
のように見えますが、それらを機能させることができません。例えば、
"C:\Program Files\Git\bin\sh.exe" --cd-to-home
"C:\Program Files\Git\bin\sh.exe --cd-to-home"
"C:\Program Files\Git\git-bash.exe" --cd-to-home
"C:\Program Files\Git\git-bash.exe --cd-to-home"
etc.
Windowsコマンドプロンプトから特定のディレクトリでgit-bashを起動することは可能ですか?もしそうなら、適切な構文は何ですか?
[〜#〜]ボーナス[〜#〜]:50文字以下でそれを行うためのボーナスポイント
可能な解決策の1つは、git-bashを開く前にディレクトリを変更することです。デフォルトでは、git-bashは現在のディレクトリがどこにあっても開きます。これを行うには、cd
の前にstart
呼び出しを置きます。
cd C:\specific\dir\to\open && start "" "C:\Program Files\Git\bin\sh.exe"
これはSASで行われているため、特定のディレクトリをマクロ変数に格納できます。これにより、50文字以内の要件が保証されます(したがって、KEYS
メニューのホットキーから呼び出すことができます)。コードのどこかに、Gitワーキングディレクトリを割り当てることができます。
%let gwd = C:\specific\dir\to\open;
%sysexec
呼び出しは次のようになります
%sysexec(cd &gwd. && start "" "C:\Program Files\Git\bin\sh.exe" && exit);
これは次のように機能します。まず、SASは&gwd
を展開します。次に、Windowsコマンドプロンプトを開きます。cd
は、ディレクトリを&gwd.
が解決したものに変更します。Git-bash次に、現在のディレクトリ(&gwd.
に変更されました)で開きます。最後に、git-bashが閉じるたびに、exit
コマンドが指定され、Windowsコマンドプロンプトセッションが閉じます。
残念ながら、最初のcd
では、呼び出しとgit-bashの開始の間に十分な遅延が生じて煩わしいようです。 git-bash内でcd
コマンドを発行する方が高速かもしれませんが、このアプローチは機能します。
次のようなスクリプトを作成できます。
cd c:\path\to\particular\directory
"C:\Program Files\Git\bin\sh.exe"
どちらかとして保存whatever.cmd
またはwhatever.bat
をダブルクリックします。
便宜上、以下の手順でスクリプトをタスクバーに追加できます。思ったほど簡単ではないので、これを含めます(スクリプト自体をタスクバーにドラッグすることはできません)。
cmd /c C:\path\to\your\script\whatever.cmd
タスクバーのコマンドをクリックするだけで、ワンクリックでスクリプトを実行できます。