WinSCP命令行中含空格的路径变量引发执行错误的问题求助
WinSCP命令行中含空格的路径变量引发执行错误的问题求助
我现在正尝试在PowerShell脚本里自动化WinSCP的SFTP传输操作,而且大部分关键数据都存在变量里方便复用。我写了下面这段脚本代码:
$outFileName = Split-Path $outFile -Leaf $outFilePath = Split-Path $outFile -Parent & $winScpComPath ` /log=$winScpLog /ini=nul ` /command ` "open $sftpUrl -hostkey=$sftpHostKey" ` "lcd $outFilePath" ` "cd $sftpTargetPath" ` "put $outFileName" ` "exit"
这段代码在outFilePath是不含空格的路径(比如C:\Scripts)时运行完全正常,但一旦路径里包含空格(比如"C:\Program Files")就会直接失败,我估计问题出在路径被双引号包裹这件事上。
收到的错误提示是:
Too many parameters for command 'lcd'.
我怀疑程序把额外的双引号当成了两个独立的参数,导致路径被拆分识别了。初步搜了下资料,发现很多人在WinSCP脚本命令里都遇到过类似的问题,要么是引号加得不够,要么是...
备注:内容来源于stack exchange,提问作者glueckgabi




