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?
答案 0 :(得分:2)
如果它是一个外部命令(可执行文件,脚本等),通常不需要在命令提示符下运行它。因此,如果您可以转到开始→运行... 并从那里运行它,那么您可以使用所有参数直接运行您的应用程序等。
但是,如果您正在使用CMD内置功能,例如internal commands(dir
,echo
,mklink
,...),那么管道({{1 }},或I / O重定向(|
,>
,>>
),您必须在CMD中运行命令行,否则这些功能将无法&# 39;没有。参数<
只是告诉CMD在命令完成后终止。这不是必需的,但将它放在那里是一种很好的做法,因此您可以轻松地将其替换为/c
(在命令完成后保持CMD打开)以进行调试。
答案 1 :(得分:0)
使用/C
查看CMD /?
切换的文档。
/C
开关告诉cmd.exe
程序在运行指定的命令行后返回。如果它没有返回,您将被留在cmd
shell中。我不知道VBS会是什么样子。
我的猜测是,是的,你需要/C
。