2010-12-19 104 views
1
Call CreateObject("WScript.Shell").Run(some.exe,0,False) 

我正在使用该行来调用返回一些文本的.exe,但也可以将其写入文件。监视文件更改

我会使用.Exec而不是.Run直接得到结果,但脚本挂起。

我真的不希望定时器检查输出文件是否被创建或修改。

我需要的是一种以某种方式捕捉事件的方式。有任何想法吗?

+0

我不太明白你的问题。也许你可以调用WaitForSingleObject,但是在Google上快速搜索并不能说明如何从VBScript中做到这一点。 – Wodin 2010-12-19 10:41:09

+0

这与监视文件更改有什么关系? – Nilpo 2012-03-26 12:11:32

回答

0

既然你提到它可能会返回它或将它写入文件,这是否意味着在该进程写入文件后它将退出?

如果是这样,您可以调用Shell.Run方法,将bWaitOnReturn参数设置为True,并且脚本会在继续之前等待该过程完成。否则,如果进程可能写一个文件,然后仍然继续运行,那么我认为你将不得不轮询以检查它是否存在,或者你可能创建一个C#或VB.Net exe文件,使用FileSystemWatcher(或使用API​​ FindFirstChangeNotification的正常Win32 exe)查找文件的创建,并在找到该文件时立即存在,然后可以使用设置为TruebWaitOnReturn运行该进程,但这可能只是过于复杂。

+0

当.exe完成时它退出。 bWaitOnReturn将使脚本挂起。它必须是VBScript。 – 2010-12-20 10:20:48