Call CreateObject("WScript.Shell").Run(some.exe,0,False)
我正在使用該行來調用返回一些文本的.exe,但也可以將其寫入文件。監視文件更改
我會使用.Exec
而不是.Run
直接得到結果,但腳本掛起。
我真的不希望定時器檢查輸出文件是否被創建或修改。
我需要的是一種以某種方式捕捉事件的方式。有任何想法嗎?
Call CreateObject("WScript.Shell").Run(some.exe,0,False)
我正在使用該行來調用返回一些文本的.exe,但也可以將其寫入文件。監視文件更改
我會使用.Exec
而不是.Run
直接得到結果,但腳本掛起。
我真的不希望定時器檢查輸出文件是否被創建或修改。
我需要的是一種以某種方式捕捉事件的方式。有任何想法嗎?
既然你提到它可能會返回它或將它寫入文件,這是否意味着在該進程寫入文件後它將退出?
如果是這樣,您可以調用Shell.Run方法,將bWaitOnReturn
參數設置爲True
,並且腳本會在繼續之前等待該過程完成。否則,如果進程可能寫一個文件,然後仍然繼續運行,那麼我認爲你將不得不輪詢以檢查它是否存在,或者你可能創建一個C#或VB.Net exe文件,使用FileSystemWatcher(或使用API FindFirstChangeNotification
的正常Win32 exe)查找文件的創建,並在找到該文件時立即存在,然後可以使用設置爲True
的bWaitOnReturn
運行該進程,但這可能只是過於複雜。
當.exe完成時它退出。 bWaitOnReturn將使腳本掛起。它必須是VBScript。 – 2010-12-20 10:20:48
我不太明白你的問題。也許你可以調用WaitForSingleObject,但是在Google上快速搜索並不能說明如何從VBScript中做到這一點。 – Wodin 2010-12-19 10:41:09
這與監視文件更改有什麼關係? – Nilpo 2012-03-26 12:11:32