PowerShell脚本SCP命令

问题描述 投票:0回答:2

我有以下脚本,

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

但是服务器变量无法正常工作,有什么想法吗?

谢谢!

powershell scp
2个回答
0
投票

尝试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'"
}

0
投票

为了传递expression作为参数-在您的情况下使用+进行字符串串联操作-您必须将其包括在(...)

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

或者,您可以使用可扩展字符串(字符串插值):

scp.exe -r "username@${Server}:/home/copylogs/logs" .\logs_prod
© www.soinside.com 2019 - 2024. All rights reserved.