是否可以编写一个在脚本中间执行“git clone”的 Windows .bat 脚本,以便脚本继续运行?它总是为我退出。
我在 Windows 7 Enterprise SP1 上使用来自“The Git Development Community”的 64 位 Git 版本 2.8.3。git.exe 在我的路径中 (c:\program files\git\cmd\git.exe) - 它不是通过 git.cmd 或类似文件间接执行的。
我能够运行一系列命令,例如
git init
git add --all
git commit -m "commit message"
Run Code Online (Sandbox Code Playgroud)
使用这些命令,批处理脚本会继续正常执行每个命令。和
git clone {url}
Run Code Online (Sandbox Code Playgroud)
脚本立即退出,通常带有双重提示,提示某种异常退出(即使 %ERRORLEVEL% 为 0):
git clone {url} new
Cloning into 'new'...
remote: Counting objects: 26, done
remote: Compressing objects: 100% (23/23) done.
remote: Total 26 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (26/26) done.
Checking connectivity... done.
c:\jdev\ppss\finalprep\ant2>c:\jdev\ppss\finalprep>
Run Code Online (Sandbox Code Playgroud)
像使用“call git clone ...”和“cmd /c git clone ...”这样的常见 Windows 技巧似乎不起作用。即使是“start /wait cmd /c git clone ...”也不行。
有任何想法吗?
“git clone”后面的行是 IF 语句:
git clone {url} subfolder
if "%var%" == "y" (
@echo some commands went here
) else (
@echo different commands went here
}
Run Code Online (Sandbox Code Playgroud)
上面的 IF 语句不是合法的 DOS if 语句(错误的 ELSE 关闭),但是您不会从 DOS 收到任何错误消息 - 您的脚本只是退出。看起来前面的命令导致了中止,在我的例子中恰好是 git clone。
这与 git 无关,严格来说是 cmd.exe 的废话。