监视文件更改
问题描述:
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
运行该进程,但这可能只是过于复杂。
+0
当.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