我有以下脚本,
$servers = "server1","server2"
ForEach($Server In $servers){
scp.exe -r 'username@'+$Server+':/home/copylogs/logs' .\logs_prod'
}
但是服务器变量无法正常工作,有什么想法吗?
谢谢!
尝试Start-Process
功能。 Docs: Start-Process
$servers = "server1","server2"
foreach($server in $servers)
{
Start-Process -FilePath "scp.exe" -ArgumentList "-r 'username@$($Server):/home/copylogs/logs' '.\logs_prod'"
}
为了传递expression作为参数-在您的情况下使用+
进行字符串串联操作-您必须将其包括在(...)
中
scp.exe -r ('username@'+$Server+':/home/copylogs/logs') .\logs_prod
或者,您可以使用可扩展字符串(字符串插值):
scp.exe -r "username@${Server}:/home/copylogs/logs" .\logs_prod