2011-04-04 60 views
11

我喜歡使用批處理文件運行兩個程序,但條件是,第二個程序只有在第一個程序加載後才能啓動,那麼是否有任何方法可以使用定時器來控制何時進行控制該程序啓動。如何使用批處理文件運行多個程序

+0

您不能在批處理文件中將其作爲批處理文件阻止,直到當前命令結束。我建議你編寫一個包裝程序來啓動這兩個程序。 – Rasika 2011-04-04 03:39:48

+0

Rasika:這是錯誤的。 – Joey 2011-04-04 06:41:32

+0

@Joey:沒錯,但有點短:-)你可以使用'開始'或管道,或者如果程序是一個Windows EXE它只是工作。 – jeb 2011-04-04 20:46:22

回答

10

基本上,你可以試試這個方法(未測試):

  1. 運行使用start命令的第一個程序。

  2. 檢查循環中的任務列表以查看程序是否出現在那裏。

  3. 對上述循環施加一些時間限制。

  4. 如果成功,運行下一個程序,否則通知退出。

的腳本可能是這樣的:

@ECHO OFF 
START program1.exe 
FOR /L %%i IN (1,1,100) DO (
    (TASKLIST | FIND /I "program.exe") && GOTO :startnext 

    :: you might add here some delaying 
) 
ECHO Timeout waiting for program1.exe to start 
GOTO :EOF 

:startnext 
program2.exe 
:: or START program2.exe 

記住的時間不準確,特別是如果你要插入任務列表檢查之間的延遲。

+1

哇,謝謝你的提示.. stackoverflow真的很好! – srisar 2011-04-04 14:12:15

2

我還發現一個小黑客這樣做,只是用與-n開關ping命令如下:

start /d "C:\Program Files (x86)\Mobile Partner\" MobilePartner.exe 
ping 127.0.0.1 -n 8 
start /d "F:\Other Applcations\System Tools\OS Tweak\" dragfullwindows.exe 
5

我認爲這可能是無關緊要的,但在這裏想分享以下:

我創建了下面的批處理文件,每當我在辦公室打開我的筆記本電腦以便在一次點擊打開相關程序時運行它。 在桌面上保留此文件並創建一個文件夾,我在其中放置相關程序的所有快捷方式。 所以,我運行該批處理文件中這些快捷方式如下:

@ECHO off 

start C:\Users\User1\Desktop\Softwares\IE 
start C:\Users\User1\Desktop\Softwares\Googletalk 
start C:\Users\User1\Desktop\Softwares\YahooMessenger 
start C:\Users\User1\Desktop\Softwares\Program4 
start C:\Users\User1\Desktop\Softwares\Program5 
10

我需要同樣的事情,並且發現了以下事情作爲希望工程:

start D:\Michal\Xming\Xming.exe -multiwindow 
start D:\Michal\Xming\putty.exe 
start D:\Michal\WinSCP\WinSCP.exe 

而這一切都被保存在文件Login.bat。

順便說一句,我正在運行Win7,但我懷疑這有什麼影響。

相關問題