【问题标题】:VBscript run cmd and wait for outputVBscript 运行 cmd 并等待输出
【发布时间】:2016-03-29 01:06:23
【问题描述】:

我正在尝试使用 Certutil 读取用户的 PKI 卡数据并将数据转储到文本文件中。我们的想法是将其作为登录脚本的一部分,以收集一些证书过期用户的数据。

这是我的代码部分:

set oShell = WScript.CreateObject("WScript.Shell")
strcommand = "cmd /c certutil -scinfo -silent > " & StrPath
oShell.Run strcommand, true

它似乎工作,将证书数据转储到文本文件(strpath 变量),但是一旦我向脚本添加更多行,它就永远不会等待命令窗口完成。它只在几分之一秒左右的时间内关闭。我知道读取 PKI 卡需要大约 7 秒。我尝试过 sleep 以及 do/while 循环,但似乎没有任何东西可以让命令窗口运行。我还尝试了here.

列出的各种 intwindowstyle 选项

感谢任何帮助。

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    oShell.Run strcommand, ,true 应该可以工作。第二个参数是intWindowStyle 参数,而不是bWaitOnReturn。你也可以使用

    oShell.Run strcommand, bWaitOnReturn := true

    如果这不起作用,您可以尝试使用 Exec Method 。此链接指向的文档有一个很好的示例,它使用带有sleep 的循环运行直到进程完成。

    【讨论】:

    • 当我明确定义 Certutil 的管道输出时,这似乎有效。当我尝试在其中输入一个变量时,它又回到了快速结束命令提示符......有什么想法吗?设置 oExec = WshShell.Exec("cmd /c certutil -scinfo -silent > " & StrPath)
    猜你喜欢
    • 2018-11-19
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多