在PowerShell的多行WinSCP命令行中,无法让filemask正常工作。

问题描述 投票:0回答: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 winscp
2个回答
2
投票

这不是文件掩码的问题。- 你在文件的(似乎)结尾处的回车键后面有一个空格。lcd 行。

所以回车键逃过了空格,而没有逃过换行。因此, get 行被解释为一个新的PowerShell代码行。

基本上就相当于这个WinSCP常见的批处理文件问题的PowerShell。https:/winscp.netengdocsfaq_batch_file#newline_escaping。


虽然在一般情况下。在PowerShell中,你应该使用WinSCP .NET程序集。.


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.