2014-10-03 137 views
1

我有一个批处理脚本复制目录到备份驱动器:如何从另一个批处理脚本调用批处理脚本而不暂停?

@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,但我不想在运行脚本时看到复制操作的结果。我只想让这个脚本调用另一个,然后在关闭计算机之前提示我。我怎么做?

+0

你想在BACKUP.BAT来检测,如果它是从其他脚本运行不了。查看我的[早期问题](http://stackoverflow.com/questions/9419875/determining-if-the-batch-script-has-been-executed-from-the-command-line-or-to)要做到这一点。 – 2014-10-03 19:10:30

回答

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 
+0

错误:不支持输入重定向,立即退出进程。 :( – 2014-10-03 18:39:14

+0

@Koveras,在这一刻,我不知道为什么它会失败,但不是为我(更多东西来测试:))。答案已更新。希望它能为你工作 – 2014-10-03 19:07:32