2011-06-11 319 views
1

我必須製作一個簡短的Windows shell腳本。請不要逃跑。這並不簡單,但我無法找到讓這個坦率的原始命令行與我一起工作的方式。Windows:等待進程完成

我只是想運行dxdiag,並對收集到的數據做些什麼。

事情是,我不能得到腳本等待dxdiag完成,因爲它產生的過程,並繼續前進。我需要該文件存在並獲得信息,然後再轉到下一行。

使用start /wait沒有效果,我猜是因爲沒有涉及到GUI。

我開始認爲這是不可能的。請幫忙!

+0

它會幫助,如果你指定的Windows版本... – bbaja42 2011-06-11 07:46:18

+0

我在Windows 7中掙扎,但這應該適用於XP + – slezica 2011-06-11 08:05:15

回答

1

我想是這樣的

start /wait dxdiag /x:SomeXmlFile 

而且它在Windows Vista爲我工作。

+0

嗯,不適用於Windows 7在我工作。我想我會循環直到文件存在。 – slezica 2011-06-11 08:05:28

+0

@Santiago如果循環直到文件存在,請謹慎使用,因爲您可以在dxdiag完成創建之前嘗試訪問文件(實際取決於dxdiag如何處理文件)。如果 – bbaja42 2011-06-11 08:14:18

+0

我在循環傳遞之間等待幾秒鐘。我在寫作過程中抓住檔案的機會很渺茫,說實話,我滿足於這個哈哈。謝謝你的幫助! – slezica 2011-06-11 08:47:39

1

做類似這樣的代碼的東西:

tasklist /FI "IMAGENAME eq dxdiag.exe" 2>NUL | find /I /N "dxdiag.exe">NUL 
if "%ERRORLEVEL%"=="0" goto next_area_here 
  • 如果錯誤級別返回爲0,輸入dxdiag在這種情況下CLOSED
  • 如果錯誤級別返回爲1,輸入dxdiag在這種情況下是打開