在批处理文件中通过它运行命令后,如何退出“ git-cmd.exe”?

时间:2019-09-17 10:41:33

标签: ruby windows git batch-file

我正在编写一个批处理文件,该文件通过git-cmd.exe运行命令,但之后没有运行该命令。

我尝试使用CALLSTART /WAITSTART /B /WAIT。全部具有相同的行为。也许应该将一个参数发送到git-cmd.exe来执行命令并退出,但是我没有找到任何指导说明如何使用git-cmd.exe

这是一个示例批处理文件:

@ECHO OFF
SET "PATH=C:\Ruby26-x64\bin;C:\Program Files\nodejs;%PATH%"
SET "CurrentDirectory=%CD%"
CD /D "%UserProfile%\AppData\Local\GitHub\PortableGit_*\"
SET "GitDirectory=%CD%"
CD /D "%CurrentDirectory%"
"%GitDirectory%/git-cmd.exe" CALL rake build
PAUSE

传递给git-cmd.exe的命令已执行,但直到我在“命令提示符”窗口中手动键入PAUSE命令后,EXIT命令才执行。

我还尝试了一个简单的DIR命令而不是rake build,但是仍然会出现相同的问题:

"%GitDirectory%/git-cmd.exe" DIR
PAUSE

1 个答案:

答案 0 :(得分:0)

多亏了这些建议,通过将EXIT命令传递给git-cmd.exe如下解决了该问题:

@ECHO OFF
SET "PATH=C:\Ruby26-x64\bin;C:\Program Files\nodejs;%PATH%"
SET "CurrentDirectory=%CD%"
CD /D "%UserProfile%\AppData\Local\GitHub\PortableGit_*\"
SET "GitDirectory=%CD%"
CD /D "%CurrentDirectory%"
"%GitDirectory%/git-cmd.exe" "CALL rake build & EXIT"
PAUSE

我和其他人(我想他的名字叫mony)之间进行了有益的交谈,但被删除了,不知道为什么?! 他向我发送了此链接,其中包含命令之间&&&之间的区别: https://stackoverflow.com/a/25344009/9586127

&命令之前的EXIT,以便独立于第一个命令的结果执行两个命令。如果使用&&,则只有第一个命令成功(退出代码0)时,EXIT命令才会执行。

此外,他告诉我一种将3:6行替换为一行的方法:

FOR /D %%I IN ("%LocalAppData%\GitHub\PortableGit_*") DO SET "GitDirectory=%%I"