Команда SCP скрипта PowerShell - PullRequest
1 голос
/ 14 апреля 2020

У меня есть следующий скрипт,

$servers = "server1","server2"
ForEach($Server In $servers){
    scp.exe -r 'username@'+$Server+':/home/copylogs/logs' .\logs_prod'
}

, но серверная переменная работает не так, как предполагалось, любая идея?

спасибо!

1 Ответ

0 голосов
/ 14 апреля 2020

Чтобы передать выражение в качестве аргумента - операцию конкатенации строк с + в вашем случае - вы должны включить ее в (...)

scp.exe -r ('username@'+$Server+':/home/copylogs/logs') .\logs_prod

В качестве альтернативы, Вы можете использовать расширяемую строку (интерполяция строки), "...":

scp.exe -r "username@${Server}:/home/copylogs/logs" .\logs_prod

Обратите внимание на необходимость заключить имя переменной, Server в {...} в этом случае, чтобы следующий : не интерпретировался как часть имени переменной - см. этот ответ .

...