Do I need "cmd /c"?

时间:2016-03-04 17:49:16

标签: vbscript cmd

I've seen two different ways of calling icacls from VBScript:

oShell.Exec("icacls ...

or

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

What's the difference?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

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