バッチスクリプトによる特定ディレクトリでのGit-Bashウィンドウの立ち上げ
課題の説明
通常であれば
git
コマンドを使うには、まず
git
-
bash
ウィンドウを表示し、さらに
cd
をプロジェクトディレクトリにコピーします。これはかなり面倒です。私は今、:
バッチスクリプトでディレクトリに直接起動したい
git
bash
ウィンドウを表示します。
を実装しています。
プロジェクト・ディレクトリに、バッチ・スクリプト(
StartGitBash.bat
) ファイルを作成し、以下のコマンドを記述します。
start F:\Program" "Files\Git\git-bash.exe --cd=D:\dev\workspace\HexoTools
コマンドの説明
start
ウィンドウを起動するときに使用します
F:\Program" "Files\Git\git-bash.exe
は
git
-
bash
コードへのパスは、引用符で囲み、間にスペースを入れてください。
--cd=D:\dev\workspace\HexoTools
指定する
git
-
bash
のブートディレクトリを指定します。
D:\dev\workspace\HexoTools
,バッチをクリックすると、プロジェクトディレクトリにあるgit-bashが起動します。
ここで
StartGitBash.bat
:
これで、プロジェクトディレクトリにあるgit-bashを以下のように開くことができます。
アップグレード
上記の実装では、プロジェクトを素早く開くために
git-bash.exe
しかし、この実装は万能ではないので、プロジェクトのパスを入力すると、そのディレクトリで素早く開くように改良しました。
git-bash.exe
. 後でより少ない入力で呼び出すために、ファイル名を
StartGit.bat
コードは以下の通りです。
@echo offset /P input="Enter the path to the project you want to open in git-bash: "start F:\Program" "Files\Git\git-bash.exe --cd=%input%
Win+Rで呼び出す
そして、これを
StartGit.bat
ディレクトリを
path
環境変数からアクセスできるようにします。
win+r
呼び出すまでの手順は
プロジェクトのパスをコピーする。
win+R
Runを開いて入力
StartGit
を入力してください(大文字小文字は関係ありません)。
<イグ
そして、プロジェクトのパスを貼り付けて、Enterキーを押せば、すぐに
Git-bash.exe
をクリックすると、そのプロジェクト・パスに移動します。
結果は次のようになります。
参考文献
Git Bashウィンドウを特定の作業ディレクトリでスクリプトを使って起動するには?
Windows 10
これは基本的に @ lengxuehx さんの回答ですが、Win 10 用にアップデートされており、bash のインストール先が次の場所であると仮定しています。 git 公式ダウンロード Git Bash for Windows。
cmd /c (start /b "%cd%" "C:\Program FilesGitWgit-bash.exe") &&exit
結局、Git Bashのコンテキストメニューに、コマンドレジストリから実行するコマンドとして設定した項目がなくなってしまったので、これを使うことにしました。気になる方は、こうしてみました。
- HKEY_CLASSES_ROOTDirectoryBackgroundshell の shell key に Bash という新しいキーを作成する。
- アイコン(新しいキーではありません!)に文字列の値を追加します。この値は、git-bash.exeのセクションを含む、git-bash.exeへのフルパスとなります。引用符で囲む必要があるかもしれません。
- コンテキストメニューのBashのデフォルトを使用したいテキストに編集します。
- Bashにcommandというサブキーを追加する。
- commandのデフォルト値をcmd /cに変更する(start /b "%cd%" "C:\Program FilesGitWâte bash.exe") && exit
これで、レジストリを閉じて、実際のディレクトリから Git Bash を使い始めることができるはずです。例えば、このPCは本当のディレクトリではありません。
スクリプト(bashやWindowsバッチ)を使って、作業ディレクトリを指定して新しいGit Bashウィンドウを起動するにはどうしたらいいですか?
私の目標は、ひとつのスクリプトから複数のGit Bashウィンドウを起動し、それぞれを異なる作業ディレクトリに設定することです。こうすることで、コンピュータを起動した後に、Git Bash ウィンドウを開いてそれぞれのウィンドウを正しい作業ディレクトリに移動させることなく、素早く作業を開始することができるようになるのです。
編集:この質問のように、デフォルトの作業ディレクトリを変更する方法ではなく、スクリプトから異なる作業ディレクトリを持つ1つ以上のターミナルウィンドウを起動する方法を聞いているのです。
Git Bash は cmd.exe をターミナルとして使い、さらに MSYS / MinGW の拡張として sh.exe (cmd.exe のラッパーの一種) が提供するものを使用します。Windowsでは、startコマンドで新しいターミナルを起動します。
つまり、作業ディレクトリを指定して新しいGit Bashターミナルを起動するシェルスクリプトは、次のようになります。
(cd C:/path/to/dir1 && start sh --login) &
(cd D:/path/to/dir2 && start sh --login) &
同等のWindowsバッチスクリプトは
C: cd \dir1 start "" "%SYSTEMDRIVE%Program Files (x86)\GitBinChu.exe" --login
D: cd \pathtodir2 start "" "%SYSTEMDRIVE%Program Files (x86)\Gitbinsh.exe" --login
スタートメニューから起動したGit Bashと同じフォントとウィンドウサイズにするには、スタートメニューのショートカット設定をコマンドコンソールのデフォルトにコピーするのが一番簡単です(デフォルトを変更するには、cmd.exeを開いて左上にあるアイコンを左クリックし、デフォルトを選択します)。
cd = オプションを使用してみてください。GIT BashがC:⇄Program Files⇄Gitにあると仮定すると、このようになります。
<ブロッククオート"C:\Program FilesGit Filter git-bash.exe" --cd="e:\SomeFolder"
レジストリエントリで使用する場合、%1 を使用して、フォルダパラメータを指定することができます。
"C:\Program FilesGitgit-bash.exe" --cd="%1"
Git Bash には詳しくないのですが、/path/to/my/gitshell にある git シェル (例: git-sh ) で、お気に入りのターミナルプログラムが `myterm' という名前だと仮定すると、以下のスクリプトを書くことができるでしょう。
<ブロッククオート
(cd dir1; myterm -e /path/to/my/gitshell) &
(cd dir2; myterm -e /path/to/my/gitshell) & ...
実行される引数-eは、あなたのお気に入りのターミナル・プログラムと異なる名前である可能性があることに注意してください。
このコマンドは、「ファイル名を指定して実行」ダイアログボックスから直接実行するか(ショートカットは win + R)、.bat スクリプトとして保存することができます。
<ブロッククオート
cmd /c (start /d "/path/to/dir" bash --login) && exit
追加
アイデアで直接ターミナルをgit-bashに設定することができます。
/{br nice これは良いアイデアです、作業ディレクトリに入って右クリックする必要がありません
以上、バッチスクリプトを使って特定のディレクトリにあるGit-Bashウィンドウを起動する方法について詳しく説明しました。バッチプロセスによるGit-Bashウィンドウの起動については、BinaryDevelopの他の関連記事にも注目してください!
関連
-
自動コード投入とプロジェクトデプロイメントのためのバッチファイルbatスクリプト
-
DOSバッチ処理では、カレントディレクトリのソリューションとしてUNCパスをサポートしていません。
-
JDKの一括インストール/JREのワンクリックインストールとJava環境変数の自動設定
-
DOSバッチ処理による時限式シャットダウン操作の方法詳細
-
フォルダバット内の全ファイルの個数と合計サイズの一括統計処理
-
DOS共通コマンド(md,rd,ren,move)一括処理マニュアル
-
Dosバッチ書き込みワンクリッククリーンシステムジャンクbatコード
-
フォルダ内のサブフォルダやファイルを一定時間ごとにすべて削除する方法
-
bat, vbs, js ネイティブミックス (bat は vbs, js コードを実行可能)
-
shutdownコマンドによるリモートシャットダウンとリブート
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
システム時間抽出のためのBATバッチコード(バグ修正)
-
Windowsのバッチバットはローカルのmysqlに接続し、定式化されたデータを作成し、SQLファイルを実行します。
-
ウィンドウは、git update (git pull) を定期的に実行するタスクスケジュールを設定し、実行中の cmd を非表示にします。
-
バッチリ名称変更シリーズ ケースコード
-
ファイル(フォルダ)の存在を検出するWindows用バッチプログラム
-
バッチプロセスでポート135、137、445などを閉じる実装コード(ランサムウェア)
-
Windowsでbatスクリプトを使用したFTPの時間指定アップロードとダウンロード
-
cmdのバッチ処理におけるset /a、set /pの違いについて
-
dosコマンドラインでIEプロキシを設定するコード
-
DOSバッチコマンド For loopコマンド詳細説明