【问题标题】:Do I need "cmd /c"?我需要“cmd /c”吗?
【发布时间】:2016-03-04 17:49:15
【问题描述】:

我见过两种从 VBScript 调用 icacls 的不同方式:

oShell.Exec("icacls ...

oShell.Exec("%COMSPEC% /c Echo Y| icacls ...

有什么区别?

【问题讨论】:

    标签: vbscript cmd


    【解决方案1】:

    如果它是外部命令(可执行文件、脚本等),通常不需要在命令提示符中运行它。因此,如果您可以转到 Start → Run... 并从那里运行它,那么您可以使用所有参数等直接运行您的应用程序。

    但是,如果您使用 CMD 内置功能,例如 internal commandsdirechomklink、...)、管道(|)或 I/O 重定向(@987654326 @、>><),您必须在 CMD 中运行命令行,否则这些功能将不可用。参数/c只是告诉CMD在命令完成后终止。这不是必需的,但将它放在那里是一种很好的做法,因此您可以轻松地将其替换为 /k(命令完成后保持 CMD 打开)以进行调试。

    【讨论】:

      【解决方案2】:

      使用CMD /? 查看/C 开关的文档。

      /C 开关告诉cmd.exe 程序在运行指定的命令行后返回。如果它没有返回,您将被留在cmd shell 中。我不知道这在 VBS 中会是什么样子。

      我的猜测是,是的,你需要/C

      【讨论】:

        猜你喜欢
        • 2010-12-02
        • 2016-02-11
        • 2018-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多