.bat 脚本中的 git clone

Joh*_*ion 5 git batch-file

是否可以编写一个在脚本中间执行“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 ...”也不行。

有任何想法吗?

Joh*_*ion 5

“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 的废话。