Может ли кто-нибудь объяснить различия между Invoke-Expression $test
и Invoke-Expression -Command $test
?Различия между Invoke-Expression и Invoke-Expression -Command
переменная тест:
$test = "notepad.exe myfile.txt"
Может ли кто-нибудь объяснить различия между Invoke-Expression $test
и Invoke-Expression -Command $test
?Различия между Invoke-Expression и Invoke-Expression -Command
переменная тест:
$test = "notepad.exe myfile.txt"
Оба Invoke-Expression $test
и Invoke-Expression -Command $test
- это то же самое. И поставит $test
в параметр «команда», то есть в положении 1. -Command
является и необязательным именем параметра, который вы можете поместить в.
SYNTAX
Invoke-Expression [-Command] <string> [<CommonParameters>]
Они функционально эквивалентны. -Command
- единственный параметр, который принимает командлет, который не находится в наборе CommonParameters
, и первый (по умолчанию, поскольку он является единственным) при использовании позиционно.
Все, что вы делаете со вторым примером, является явным с указанием вашего параметра вместо того, чтобы полагаться на позицию. Это хорошая привычка. Подробный, но надежный, и это делает ваше намерение совершенно ясным.
команд похожи, но ведет себя по-разному. Например:
$sb = [scriptblock]::Create("test-path 'c:'")
iex $sb
icm $sb
iex
произведет ошибку при icm
не будет.
И не то же самое:
Invoke-Expression: Выполняет команды или выражения на локальном компьютере.
Invoke-Command: Выполняет команды на локальных и удаленных компьютерах.
'icm' означает' invoke-command' и не имеет никакого отношения к вопросу. –
Invoke-expression -command, command - это флаг метода invoke-expression, icm вызывает invoke-command, который является другим методом полностью –