【发布时间】:2016-03-04 17:49:15
【问题描述】:
我见过两种从 VBScript 调用 icacls 的不同方式:
oShell.Exec("icacls ...
或
oShell.Exec("%COMSPEC% /c Echo Y| icacls ...
有什么区别?
【问题讨论】:
我见过两种从 VBScript 调用 icacls 的不同方式:
oShell.Exec("icacls ...
或
oShell.Exec("%COMSPEC% /c Echo Y| icacls ...
有什么区别?
【问题讨论】:
如果它是外部命令(可执行文件、脚本等),通常不需要在命令提示符中运行它。因此,如果您可以转到 Start → Run... 并从那里运行它,那么您可以使用所有参数等直接运行您的应用程序。
但是,如果您使用 CMD 内置功能,例如 internal commands(dir、echo、mklink、...)、管道(|)或 I/O 重定向(@987654326 @、>>、<),您必须在 CMD 中运行命令行,否则这些功能将不可用。参数/c只是告诉CMD在命令完成后终止。这不是必需的,但将它放在那里是一种很好的做法,因此您可以轻松地将其替换为 /k(命令完成后保持 CMD 打开)以进行调试。
【讨论】:
使用CMD /? 查看/C 开关的文档。
/C 开关告诉cmd.exe 程序在运行指定的命令行后返回。如果它没有返回,您将被留在cmd shell 中。我不知道这在 VBS 中会是什么样子。
我的猜测是,是的,你需要/C。
【讨论】: