如何在Windows命令行中启动MingW控制台(GitBash)?

15

我正在尝试使用批处理文件自动化我的工作环境设置。我卡在了一个点上,无法从命令行启动MingW64控制台。

start "" "%ProgramFiles%\Git\bin\sh.exe" --login可以正常工作,但似乎打开的是与我要找的不同的 shell 窗口。我将用图片解释这一点。

它打开的是一个默认的 cmd 风格窗口,带有 bash 集成。这个窗口甚至不能改变大小。
enter image description here

我想要的是
enter image description here

我尝试使用命令 start "" "%ProgramFiles%\Git\git-bash.exe" --login -i -c /bin/bash,但似乎会在打开后很快地关闭 shell。如果我从资源管理器中执行相同的文件,则 shell 不会自动关闭。

这是我完整的批处理文件供参考:

@echo on

REM start PHP and MYSQL
start "" mysql_server\UniServerZ\UniController.exe start_both

REM Open PhpMyAdmin
start "" http://localhost/us_opt1/

REM Open Folders
start "" %SystemRoot%\explorer.exe "E:\work\"

REM Open Git Bash Instance
:: in order to open the shell in that path
cd E:\work\
:: start "" "%ProgramFiles%\Git\bin\sh.exe" --login
start "" "%ProgramFiles%\Git\git-bash.exe" --login -i -c /bin/bash

REM start sublime text
start "" "E:\Sublime Text Build 3083 x64\sublime_text.exe"
3个回答

16

git-bash.exe -i -c "/bin/bash" 似乎工作得更好。
此问题演示了调用 git-bash.exe 的其他各种方式,但最终得出结论:

运行 git-for-windows 的首选方式是使用 git-cmd.exe

c:\git\git-cmd.exe --command=usr/bin/bash.exe -l -i

然而,这仅会在当前的命令提示符中打开一个会话,而git-bash.exe会打开一个新窗口。

结合这个问题(打开一个新控制台)和这个问题(避免两个CMD窗口),我将使用:

start /b cmd /c git-bash.exe -i -l -c "/bin/bash"

提问者Atif Mohammed Ameenuddin评论中报告这个方法可行:

start "" "%ProgramFiles%\Git\git-bash.exe"

1
感谢您对此的见解。start /b cmd /c "%ProgramFiles%\Git\git-bash.exe" -i -l -c "/bin/bash"似乎不起作用,但是start "" "%ProgramFiles%\Git\git-bash.exe"可以工作。 - Atif
@AtifMohammedAmeenuddin 太好了!我已经在答案中包含了你的结论,以增加可见性。 - VonC
虽然这对我来说是有效的,但我发现我必须在Git bash窗口打开后按一次Ctrl+C才能实际上进入提示符。还有其他人遇到过这种情况吗? - Tim Malone
@TimMalone 奇怪。你使用的 git 版本是什么?在哪个 Windows 系统上? - VonC
@VonC 在 Windows 10 上使用2.8.1版本。也许我应该尝试更新Git,我有点落后了。 - Tim Malone
@TimMalone 同意。请尝试最新的2.15版本。 - VonC

1

适用于Windows 10

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

;

开始 "" "%ProgramFiles%\Git\git-bash.exe"

谢谢!


2
你的回答缺乏详细信息,并且没有提供任何新信息来说明与现有答案相比的新内容。 - Keith Langmead

0
在不同的路径中打开Oneline,并且例如执行一个命令:
start "" "%ProgramFiles%\Git\git-bash.exe" --cd="E:\work" -c "git status; /bin/bash"

如果有命令,它总是在最后。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接