2016-07-23 89 views
1

我有這個打開4釐米的批處理文件,然後去相應的 文件夾,並執行一些其他bat文件,然後執行python腳本。 我基本上希望有此批處理文件打開文件睡眠,然後批量關閉無限循環?

:loop 
start cmd.exe /k "cd C:\users\ivan\desktop\folder1 & call run.bat" 
start cmd.exe /k "cd C:\users\ivan\desktop\folder2 & call run.bat" 
start cmd.exe /k "cd C:\users\ivan\desktop\folder3 & call run.bat" 
start cmd.exe /k "cd C:\users\ivan\desktop\folder4 & call run.bat" 
goto loop 

打開這4 CMDS,然後等待約30分鐘,關閉並重新打開它們,所以它會是這個樣子

:loop 
start cmd.exe /k "..." 
sleep(1800000) 
exit 
goto loop 

沒有人知道如果這甚至是可能的?

+0

有'timeout'命令做睡眠; – aschipfl

+0

「關閉」是指殺死相關任務?如果是這樣,你需要一種方法來確定正確的過程(通過'tasklist'命令),獲得它的PID並將其用於'taskkill'命令;一種方法是指定一個獨特的窗口標題(通過'title'命令),並使用'tasklist/V'和'find' /'findstr'來搜索該標題... – aschipfl

+0

@aschipfl我幾乎找到了一切,但問題是我不能使用taskkill,因爲每次我重新運行批處理文件時,進程PID都會改變。 –

回答

1
start "RunBat" /d "C:\users\ivan\desktop\folder1" call run.bat 

在新窗口中開始run.bat的標題RunBat與工作目錄C:\users\ivan\desktop\folder1(不需要一個cd命令)

timeout /t 1800 >nul 

暫停(30分鐘60秒*​​設)1800秒執行。 (>nul:不顯示定時器)

終於

taskkill /fi "WINDOWTITLE eq RunBat*" 

殺死所有cmd窗口,其中WINDOWTITLE與RunBat(這樣你不需要的PID)開始。 (把你的一切「的女兒流程」相同的標題,所以你可以用一個taskkill命令殺死他們,或給他們獨特的遊戲,能夠分別殺死他們)

放在一個標籤和一個goto左右,你完成了。