2016-03-04 100 views
2

我见过调用从VBScript icacls的两种不同的方式:我需要“cmd/c”吗?

oShell.Exec("icacls ... 

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

有什么区别?

回答

2

如果是外部命令(可执行文件,脚本等),通常不需要在命令提示符下运行它。所以如果你可以去开始→运行…并运行它从那里,你可以直接与所有的参数运行应用程序等

但是,如果你正在使用CMD内置功能,如internal commandsdirechomklink,&hellip;),管道(|)或I/O重定向(>,>>,<),您必须在CMD中运行命令行,因为否则这些功能将不可用。参数/c只是告诉CMD在命令完成后终止。这不是必需的,但将它放在那里是一个好习惯,所以您可以用/k(在命令完成后保持CMD打开)来轻松替换它以用于调试目的。

0

查看使用CMD /?/C交换机的文档。

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

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