Я видел два разных способа вызова icacls
из VBScript:Нужно ли мне «cmd/c»?
oShell.Exec("icacls ...
или
oShell.Exec("%COMSPEC% /c Echo Y| icacls ...
В чем разница?
Я видел два разных способа вызова icacls
из VBScript:Нужно ли мне «cmd/c»?
oShell.Exec("icacls ...
или
oShell.Exec("%COMSPEC% /c Echo Y| icacls ...
В чем разница?
Обычно вам не нужно запускать его в командной строке, если это внешняя команда (исполняемый файл, сценарий и т. Д.). Так что если вы можете пойти в Начало → Run & hellip; и запустить его оттуда, то вы можете запустить приложение напрямую со всеми аргументами и т.д.
Однако, если вы используете CMD встроенные функции, такие как internal commands (dir
, echo
, mklink
, & hellip;), трубы (|
) или переадресация ввода/вывода (>
, >>
, <
), вы должны выполнить команду командной строки в CMD, поскольку в противном случае эти функции будут недоступны. Параметр /c
- это просто сообщить CMD о завершении после завершения команды. Это не требуется, но это хорошая практика, чтобы поместить его туда, поэтому вы можете легко заменить его на /k
(сохранить CMD открытым после завершения команды) для целей отладки.
Просмотрите документацию для переключателя /C
, используя CMD /?
.
Переключатель /C
сообщает программе cmd.exe
, чтобы она вернулась после выполнения указанной командной строки. Если он не вернется, вы останетесь в оболочке cmd
. Я не знаю, как это будет выглядеть из VBS.
Я предполагаю, что да, вам нужно /C
.