2014-04-16 38 views
0

我試圖寫一個測試bat文件,將做到以下幾點:如何運行一組平行批處理文件順序

  • 從服務器下載
  • 文件上傳文件到同一臺服務器

我需要三臺筆記本電腦同時執行下載和上傳。因此,我創造這樣一個名爲3-chanD.bat的腳本:

*echo /////////3-channel-Downloading//////// 
start cmd.exe /k >time2 timeit chan6D.bat 
start cmd.exe /k >time3 timeit chan11D.bat 
start cmd.exe /k >time1 timeit chan1D.bat* 

chan6D.bat是卑鄙的腳本應對從服務器文件到我的筆記本電腦之一:

*xcopy "C:\Documents and Settings\All Users\Documents\test" "\\192.168.0.102\SharedDocs\test" /Y /E /S* 

一樣chan1D。 bat和chan11D.bat:

*echo /////////channel 6 Downloading//////// 
xcopy "C:\Documents and Settings\All Users\Documents\test" "\\192.168.0.102\SharedDocs\test" /Y /E /S* 
*echo /////////channel 11 Downloading//////// 
xcopy "C:\Documents and Settings\All Users\Documents\test" "\\192.168.0.104\SharedDocs\test" /Y /E /S* 

上傳腳本完成相反的工作。

問題是我需要坐在筆記本電腦旁邊等待這三臺筆記本電腦完成下載,然後手動運行上傳腳本。我試着寫一個腳本:

*@echo off 
echo /////////3-channel-Downloading//////// 
call 3-chanD.bat 
echo /////////3-channel-Uploading//////// 
call 3-chanU.bat 
pause* 

,但它只是運行3-chanD.bat和3 chanU.bat在第二。它不會等到下載完成。 有沒有辦法同時執行一組命令,然後再執行另一組命令並行?

+0

我建議在客戶端運行批處理文件。您可以讓每個客戶機等待文件在服務器上存在,以便同步進程。然後,只要在服務器上創建文件,每個客戶端都會開始下載並在下載完成後立即開始上傳。 –

回答

0

讓每個批處理文件都創建一個標誌文件,執行xcopy,並在xcopy完成時刪除標誌文件。

type nul > "%temp%\xcopy1.tmp" 
xcopy "C:\Documents and Settings\All Users\Documents\test" "\\192.168.0.102\SharedDocs\test" /Y /E /S 
del "%temp%\xcopy1.tmp" 

啓動的批處理文件可以檢查循環中是否存在所有三個標誌文件,並在不再存在時啓動上載過程。

相關問題