2013-09-05 2 views

ответ

7

Оба Invoke-Expression $test и Invoke-Expression -Command $test - это то же самое. И поставит $test в параметр «команда», то есть в положении 1. -Command является и необязательным именем параметра, который вы можете поместить в.

SYNTAX 
    Invoke-Expression [-Command] <string> [<CommonParameters>] 
4

Они функционально эквивалентны. -Command - единственный параметр, который принимает командлет, который не находится в наборе CommonParameters, и первый (по умолчанию, поскольку он является единственным) при использовании позиционно.

Все, что вы делаете со вторым примером, является явным с указанием вашего параметра вместо того, чтобы полагаться на позицию. Это хорошая привычка. Подробный, но надежный, и это делает ваше намерение совершенно ясным.

-1

команд похожи, но ведет себя по-разному. Например:

$sb = [scriptblock]::Create("test-path 'c:'") 
iex $sb 
icm $sb 

iex произведет ошибку при icm не будет.

+0

'icm' означает' invoke-command' и не имеет никакого отношения к вопросу. –

+0

Invoke-expression -command, command - это флаг метода invoke-expression, icm вызывает invoke-command, который является другим методом полностью –

-1

И не то же самое:

Invoke-Expression: Выполняет команды или выражения на локальном компьютере.

Invoke-Command: Выполняет команды на локальных и удаленных компьютерах.

Смежные вопросы