如何编写打开GitBash shell并在shell中运行命令的批处理文件?

mar*_*ike 41 git shell windows-shell msysgit

我在Windows 7上尝试使用批处理文件打开GitBash shell并进行git调用.这是我的批处理文件的内容:

REM Open GitBash 
C:\Windows\SysWOW64\cmd.exe /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
REM retrieve archive
git archive master | tar -x -C %~1
REM quit GitBash
exit
Run Code Online (Sandbox Code Playgroud)

我注意到GitBash在下一个命令"git archive ..."之前注销.有人知道我是否可以将命令传递给GitBash以及如何?

麦克风

Eri*_*rik 51

"C:\Program Files (x86)\Git\bin\sh.exe" --login -i -c "git archive master | tar -x -C $0" "%~1"
Run Code Online (Sandbox Code Playgroud)

  • 是否可以通过这种方式调用多个命令?(我尝试使用wsh从git钩子创建一个可执行文件,但它为每个命令创建一个新线程...) (3认同)

rug*_*ugg 11

您还可以运行shell脚本来运行多个命令

#! /bin/bash
cd /c/GitRepo/PythonScripts
git status
read -p "Press enter to continue"
Run Code Online (Sandbox Code Playgroud)

然后从你的cmd行调用它:

"c:\Program Files (x86)\Git\bin\sh.exe" --login -i -c "/c/GitRepo/PythonScripts/statusandwait.sh"
Run Code Online (Sandbox Code Playgroud)


inf*_*rno 5

在Windows中,我创建了一个git.bat文件,并将其与.hook扩展名相关联.

if not exist %1 exit
set bash=C:\Program Files (x86)\Git\bin\bash.exe
"%bash%" --login -i -c "exec "%1""
Run Code Online (Sandbox Code Playgroud)

之后你可以像每个.bat或.cmd文件一样运行.hook文件,除了它们在git shell下运行...

  • 嗨@inf3rno,我的观点是你的答案不应该让我进一步谷歌搜索;-),无论如何,谢谢你的指点。 (2认同)