无法使文件掩码在PowerShell中的多行WinSCP命令行中正常工作

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

我正在尝试使用WinSCP创建PowerShell脚本来自动执行SFTP传输。我可以连接并进行简单的传输,但是我只想传输昨天的文件。为此,我需要一个无法使用的文件掩码。

下面是我的代码。我正在使用此脚本,将其放在Notepad ++中,将其另存为PowerShell脚本并运行。 SFTP连接部分可以正常工作,因为我已使用它来获取SFTP上的所有文件。因此,我确定它是文件掩码部分。

& "C:\Program Files (x86)\WinSCP\WinSCP.com" `
  /log="\\blah\blah\users\vmedhe\thing.log" /ini=nul `
  /command `
    "open sftp://username:password@sftpsite -hostkey=`"`"not real host key=`"`"" `
    "cd /" `
    "lcd C:\Test_case" ` 
    "get -filemask=`"`">yesterday`"`" shares" `
    "get -filemask=`"`">yesterday`"`" *.*" `
    "exit"

$winscpResult = $LastExitCode
if ($winscpResult -eq 0)
{
  Write-Host "Success"
}
else
{
  Write-Host "Error"
}

exit $winscpResult

不幸的是我不断收到错误消息:

At C:\Powershell_Scripts\mXpress_main.PS1:9 char:2
+     "get -filemask=`"`">yesterday`"`" *.*" `
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Unexpected token '"get -filemask=`"`">yesterday`"`" *.*"' in expression or statement. At C:\Powershell_Scripts\mXpress_main.PS1:10 char:5
+     "exit"
+     ~~~~~~ Unexpected token '"exit"' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : UnexpectedToken

我的文件掩码出了点问题,但是我不确定这是什么。任何帮助都会很棒。

powershell sftp winscp winscp-net
2个回答
2
投票

不是文件掩码。 –在lcd行的(貌似)末尾的反引号后有一个空格。

因此反引号转义了空格,而不是换行符。因此,get行被解释为新的PowerShell代码行。

基本上,这是PowerShell等效的带有批处理文件的常见WinSCP问题:https://winscp.net/eng/docs/faq_batch_file#newline_escaping


尽管通常为in PowerShell, you should use WinSCP .NET assembly


0
投票

谢谢,确实是问题所在。以下是将来所有Google的最终代码。

& "C:\Program Files (x86)\WinSCP\WinSCP.com" `
  /log="\\blah\blah\users\fake\thing.log" /ini=nul `
  /command `
    "open sftp://username:password@sftpname/ -hostkey=`"`"junk host key=`"`"" `
    "cd /" `
    "lcd C:\test_area" `
    "get -filemask=`"`">yesterday`"`" shares" `
    "get -filemask=`"`">yesterday`"`" *.*" `
    "exit"

$winscpResult = $LastExitCode
if ($winscpResult -eq 0)
{
  Write-Host "Success"
}
else
{
  Write-Host "Error"
}

exit $winscpResult  
© www.soinside.com 2019 - 2024. All rights reserved.