首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.ShellExecute和Wait

.ShellExecute和Wait
EN

Stack Overflow用户
提问于 2016-08-16 16:00:05
回答 1查看 4.3K关注 0票数 2

我有一个调用多个其他脚本的VBScript。(其中大多数只是将文件从NAS复制到用户PC上的多个位置。

需要使用.ShellExecute以管理员身份运行其中一个VBScripts。

它确实可以工作,但在调用后还有其他VBScripts依赖它,所以我得到了一个文件丢失的错误。

我知道命令

代码语言:javascript
复制
shell.Run "sample.vbs", , True

等待脚本完成。

有没有类似的方法让ShellExecute等待?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-16 16:26:40

ShellExecute总是异步运行。如果您有其他脚本只需要在此脚本完成后运行,您可以在完成时创建某种类型的标记,以向其他脚本发出"go“的信号。

例如,您可以在特定路径下创建一个文件:

代码语言:javascript
复制
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile("C:\path\to\marker.txt", True)

如果您需要多次运行批处理脚本,请让脚本在启动时删除标记,并在结束时重新创建它。

下一步应该运行的脚本需要检查这个标记并暂停执行,直到它出现。例如:

代码语言:javascript
复制
Set fso = CreateObject("Scripting.FileSystemObject")
Do Until fso.FileExists("C:\path\to\marker.txt")
  WScript.Sleep 100
Loop

其他选项是创建注册表值或事件日志条目。

检查进程列表(例如,通过Win32_Process)将不起作用,因为普通用户无法访问提升的进程的CommandLine属性(识别此特定进程将需要该属性)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38969503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档