WinSCP技术问题:如何在WinSCP PowerShell脚本中添加PowerShell变量?
WinSCP脚本中日志路径与本地目录变量的正确用法
你当前的脚本存在两处关键语法错误,修正后即可正常使用变量:
错误点说明
- /log 参数格式错误:参数名和值之间不能加空格,且路径变量需要用双引号包裹(避免路径含空格时解析失败),原写法
/log = $logPath是错误的。 - lcd 命令缺失关键字:直接写
$lcdPath无法被WinSCP识别为切换本地目录的操作,必须明确加上WinSCP的lcd命令关键字,格式应为"lcd $lcdPath"。
修正后的完整脚本
$logPath = "c:\LogPath" $lcdPath = "c:\lcdPath" & "C:\Program Files (x86)\WinSCP\WinSCP.com" ` "/log=`"$logPath`"" /ini=nul ` /command ` "open ftpSite -hostkey=`"`"hostKey`"`" -rawsettings FSProtocol=2" ` "cd ftpFilePath" ` "lcd $lcdPath" ` "get * -filemask=*>=1D" ` "exit"
额外说明
- 日志路径的引号处理:
"/log="$logPath""是PowerShell中嵌套双引号的写法,确保WinSCP能正确解析带空格的路径(如果你的路径不含空格,也可以简化为/log=$logPath,但加引号更通用)。 - lcd命令:
"lcd $lcdPath"明确告诉WinSCP执行切换本地工作目录的操作,变量作为命令的参数传入。
内容的提问来源于stack exchange,提问作者JM1
相关产品推荐
相关产品推荐

