2014-10-03 136 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