2013-06-25 67 views
53

我有我希望的是一个简单的问题,但我还没有找到答案。我想从DOS批处理文件启动Git Bash。以下是我试过到目前为止:如何从DOS命令行启动Git Bash?

1)从Win 7的开始按钮推出的Git的Bash 2)用于在使用开始命令

识别过程“sh.exe” 3)从批处理文件推出sh.exe
start sh.exe 

但是,这并没有启动完整的Git Bash环境。 Git Bash通常在标题栏中有“MINGW32”,但sh.exe有完整的路径... Git \ bin \ sh.exe。它感觉对我来说有些重叠或依赖关系我不知道,也需要加载(拉入?导入?)。

这是我通过谷歌搜索找到前的结果之一,但它没有完整意义上的我,我不知道它是否适用于究竟我的情况:

Running git from Windows Cmd line: Where are key files?

我在DOS批处理脚本世界大约7岁,所以要温和。

任何帮助表示赞赏。提前致谢。

回答

67

如果你想从一个批处理文件启动:

  • 用于x86

    start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login 
    
  • 针对x64

    start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login 
    
+0

谢谢@Endoro!尽管@Klas Mellbourn的回答对于Powershell来说是正确的,但你从DOS批处理文件运行后更加正确。 “开始”指令的添加会导致程序异步执行,这正是我需要的!竖起大拇指! –

+10

从批处理文件中打开后,有没有办法在Git批处理窗口中键入并执行命令? – Nick

+1

@OviC你确定你的编辑是正确的吗? “程序文件(x86)”仅在32位程序的x64架构下存在。 – Drunix

27

我不知道你所说的“充分的Git Bash的环境”是指什么,但我得到了很好的提示,如果我做

"C:\Program Files\Git\bin\sh.exe" --login 

在PowerShell中

& 'C:\Program Files\Git\bin\sh.exe' --login 

The --login switch使得外壳执行登录shell startup files

+0

谢谢@Klas Mellbourn。你的回答对于Powershell来说是好的,但是如果Endoro的回答中没有添加“start”指令,它将停止执行下一个程序,直到shell退出,这不是所需的行为,否则我会投你一票。 –

+0

我使用Console2来窗口'cmd',这会导致奇怪的行为。我把它放在一个.bat文件中,现在一切正常:'@“%SYSTEMDRIVE%\ Program Files \ Git \ bin \ bash.exe”--login' – Grault

3
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login -i 

Git bash将会打开。

1

https://stackoverflow.com/a/33368029/15789

我已经在这里张贴解答。

打开Windows命令窗口,并执行该脚本。如果你的工作目录有变化,它会在你的工作目录中打开一个bash终端,并显示当前的git状态。它通过调用exec bash保持bash窗口打开。

如果您有多个项目,您可以使用不同的项目文件夹创建此脚本的副本,并从主批处理脚本中调用它。

14

我更喜欢使用git-bash.exe而不是sh.exe。

start "" "%ProgramFiles%\Git\git-bash.exe" -c "tail -f /c/Windows/win.ini" 

您可以在结束时致电/usr/bin/bash --login -i停止关闭窗口;

start "" "%ProgramFiles%\Git\git-bash.exe" -c "echo 1 && echo 2 && /usr/bin/bash --login -i" 

注:我不知道这是一个很好的方式:)

+2

不错的答案,但git-bash窗口立即关闭。你知道如何在命令完成执行后禁用自动关闭吗? – Mark

+0

@Mark谢谢马克。我在上面的答案中添加了一个示例。不幸的是,我不知道我们应该怎么做,因为我不是一个Windows人:) – kujiy

+0

[code] start“”“%ProgramFiles%\ Git \ git-bash.exe” [/ code ] 太棒了! – PauAI

0

通过Endoro答案已经老化,我无法评论;

# if you want to launch from a batch file or the command line: 

start "" "%ProgramFiles%\Git\bin\sh.exe" --login