我正在编写一个批处理文件,该文件通过git-cmd.exe
运行命令,但之后没有运行该命令。
我尝试使用CALL
,START /WAIT
和START /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
答案 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"