运行mercurial命令时退出Windows批处理文件

LeS*_*cky 5 windows git mercurial cmd batch-file

对于Windows XP我的善变仓库的日常备份我用一个简单的批处理文件,hg_backup.bat这只是做了一些目录的变化和多变的呼叫用pause在像这样结束命令:

@Z:
@cd \hg_backup\drawings
hg pull -v
@cd \hg_backup\src\scripts
hg pull -v
@cd \hg_backup\eagle4\lbr
hg pull -v
@pause
Run Code Online (Sandbox Code Playgroud)

这适用于高达1.7的mercurial(与TortoiseHg一起安装).但是,由于mercurial 1.8它启动了第一个mercurial命令,然后突然退出而没有达到以下命令甚至脚本结束.命令窗口就消失了.

我曾经有过同样的问题,当我用git尝试同样的事情,但没有进一步调查,因为我只使用git作为一个存储库.在我看来,有一些hg命令行调用的返回代码导致脚本结束而不是执行另一个命令,但我还没有验证这一点.

有谁知道为什么会发生这种情况,甚至可能解决这个问题?

gra*_*ity 8

如果您hghg.bathg.cmd,请使用call hg并查看它是否开始工作.

command.comshell执行批处理文件替换旧的脚本(以节省内存),并要求使用call启动批处理脚本并在以后继续执行.此行为保留在Windows中cmd.exe以实现兼容性.