You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动