Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerShell中变量旁边时的冒号(:)问题_Powershell - Fatal编程技术网

PowerShell中变量旁边时的冒号(:)问题

PowerShell中变量旁边时的冒号(:)问题,powershell,Powershell,我正试图让以下工作,以便我可以自动一些SCP上传我需要做。我认为问题在于如何解释${user}@${device} $user=“user1” $device=“server1” 启动进程“C:\Program Files\PuTTY\pscp.exe”` -ArgumentList(“c:\temp\myfile.txt${user}@${device}:/shared/tmp/”)-nonewindow 我已经尝试了$user@$device(powershell对语法咆哮),$user@

我正试图让以下工作,以便我可以自动一些SCP上传我需要做。我认为问题在于如何解释
${user}@${device}

$user=“user1”
$device=“server1”
启动进程“C:\Program Files\PuTTY\pscp.exe”`
-ArgumentList(“c:\temp\myfile.txt${user}@${device}:/shared/tmp/”)-nonewindow
我已经尝试了
$user@$device
(powershell对语法咆哮),
$user@${device}
${user}${device}
(这些告诉我你不能从本地复制到本地,这表明in没有正确解析
:/shared/tmp/

尝试以下方法:

$user = "user1"
$device = "server1"
Start-Process 'C:\Program Files\PuTTY\pscp.exe' `
-ArgumentList ("c:\temp\myfile.txt {$($user)}@{$($device)}:/shared/tmp/") -NoNewWindow
试试这个:

$user = "user1"
$device = "server1"
$Program='C:\Program Files\PuTTY\pscp.exe'
$Arguments="c:\temp\myfile.txt {0}@{1}:/shared/tmp/ -NoNewWindow" -f $user, $device
Start-Process $Program  $Arguments

您还可以使用
`
转义

"c:\temp\myfile.txt ${user}@${device}`:/shared/tmp/"

和往常一样,除非您有使用
启动流程的特定原因:不要麻烦。改为使用(
&

当我刚刚测试它时,它工作得非常好:

$user   = 'user1'
$device = 'server1'
$params = 'c:\temp\myfile.txt', "${user}@${device}:/shared/tmp/"

& 'C:\Program Files\PuTTY\pscp.exe' @params

不幸的是,我试过了,但在这种情况下不起作用。