【问题标题】:Is it possible to react to vbscript msgbox from powershell script?是否可以从 powershell 脚本对 vbscript msgbox 做出反应?
【发布时间】:2017-01-22 18:12:19
【问题描述】:

我一直在努力使手动流程更像是一键式流程,但我遇到了来自 vbs 脚本的这些 msgbox 弹出窗口的问题。 本质上,我正在使用 powershell 并执行以下操作:

foreach ($loc in $locs):
    & cscript $loc

其中 $locs 中的 $loc 是一个变量,保存需要运行的 .vbs 文件的路径。

问题是我们的一位开发人员在每个 .vbs 文件中都包含了两个 msgbox 语句,这些语句会弹出并要求您单击“确定”。编辑 vbs 脚本并删除这些脚本很简单,但我不想更改我们开发人员的脚本 - 所以问题是:是否可以让 powershell 对从 cscript 行生成的 msgbox 做出反应?我不确定如何将框带入上下文或通过 powershell 对其做出反应。

【问题讨论】:

    标签: powershell vbscript msgbox wsh


    【解决方案1】:

    以批处理模式运行脚本,这将防止任何提示停止执行:

    foreach ($loc in $locs){
        & cscript //B $loc
    }
    

    来自cscript /?使用消息:

    Usage: CScript scriptname.extension [option...] [arguments...]
    
    Options:
     //B         Batch mode: Suppresses script errors and prompts from displaying
     //D         Enable Active Debugging
     //E:engine  Use engine for executing script
     //H:CScript Changes the default script host to CScript.exe
     //H:WScript Changes the default script host to WScript.exe (default)
     //I         Interactive mode (default, opposite of //B)
    ...
    

    【讨论】:

    • 花了太多时间去想太多。我会试一试,但它看起来应该可以工作。
    • 我试过这个,我会接受答案,因为它回答了问题。但我不能使用它,因为 vbs 依次调用 sqlplus 和 sqlldr 并且这些不使用此开关执行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2011-12-16
    • 1970-01-01
    • 2012-11-17
    • 2018-09-05
    相关资源
    最近更新 更多