Powershell - заменить внутри Here-String - PullRequest
1 голос
/ 21 июня 2020

Мне нужно использовать оператор if внутри here-string. Но когда я смотрю внутрь переменной, я вижу true вместо $true выражение $($row.'Secondary Network Adapter' -eq 'Y') будет заменено на $true или $false.

$row = @{
    SecondaryNetworkAdapter = "Y"
}

$code1 = @'
    if($($row.SecondaryNetworkAdapter -eq 'Y')){
        Set-NetIPInterface -InterfaceAlias '$nic1Name' -AutomaticMetric disabled -InterfaceMetric 5
    }
'@

, тогда я запускаю следующую строку :

$ExecutionContext.InvokeCommand.ExpandString($code1)

Вывод:

if(True){
  Set-NetIPInterface -InterfaceAlias 'LAN' -AutomaticMetric disabled -InterfaceMetric 5
}

С уважением,

1 Ответ

2 голосов
/ 21 июня 2020

Добавьте экранированный литерал $ перед выражением:

if(`$$($row.SecondaryNetworkAdapter -eq 'Y')){
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...