PowerShell — пытаетесь использовать переменную в ScriptBlock со строкой в ​​кавычках?

У меня есть следующее задание сценария PowerShell, в котором используется ScriptBlock. Я пытаюсь использовать переменную $pw1, но, похоже, она используется неправильно. Как я могу использовать переменные в ScriptBlock или строке?

Start-Job -ScriptBlock {Start-Process "C:\Users\Mark\Desktop\putty.exe" -argumentlist "-ssh [email protected]  -pw $pw1 -m C:\Users\Mark\Desktop\commands.txt -t" -passthru -Wait ;cmd.exe /c start cmd /k PSlist}

person John Smithman    schedule 12.09.2013    source источник


Ответы (1)


Не уверен, что полностью понял ваш вызов putty, но если вы хотите указать свой аргумент пароля (-pw), который в переменной $pw1 вашего вызывающего скрипта, вы должны использовать аргументы:

Start-Job -ScriptBlock {Start-Process "C:\Users\Mark\Desktop\putty.exe" -argumentlist "-ssh [email protected]  -pw $args[0] -m C:\Users\Mark\Desktop\commands.txt -t" -passthru -Wait ;cmd.exe /c start cmd /k PSlist} -ArgumentList $pw1

$args[0] будет содержать значение $pw1.

person JPBlanc    schedule 12.09.2013