如何在不停顿的情况下从另一个批处理脚本调用批处理脚本?

时间:2014-10-03 18:34:00

标签: windows batch-file windows-7 cmd

我有一个将目录复制到备份驱动器的批处理脚本:

@echo off
robocopy c:\somefolder d:\backup /mir
pause

最后暂停的原因有时我想在关闭之前查看复制操作的结果。

我有另一个批处理脚本调用我的备份脚本,然后关闭计算机:

@echo off
call backup.bat > nul
echo "Press any key to shutdown . . ."
pause > nul
shutdown /s /t 00

问题是命令提示符在调用backup.bat之后就位于最后因为暂停。我可以从第二行删除> nul,但是当我运行 this 脚本时,我不希望看到复制操作的结果。我只是希望这个脚本调用另一个脚本,然后在关闭计算机之前提示我。我该怎么做?

1 个答案:

答案 0 :(得分:2)

管道呼叫的任何内容

cd . | call backup.bat > nul

已编辑,因为过程中的某些内容似乎不允许通过重定向来抑制pause(但在我的电脑中它可以工作: - ?),处理它的更好方法将参数传递给backup.bat以确定是否需要等待

BACKUP.BAT

@echo off
robocopy c:\somefolder d:\backup /mir
if /i not "%~1"=="nopause" pause

来自其他脚本的调用将是

call backup.bat nopause > nul