管理批处理脚本中的特殊字符以写入 WinSCP "open"连接字符串



我正在尝试编写批处理代码以将脚本生成到文件中,以打开与WinSCP的连接;最后一个命令应该是这样的:

open sftp://user:password@example.com/

密码包含+符号,我必须将其更改为%2B以使WinSCP理解。

set pw=mypassword+
::echo %pw% return--> mypassword+
set st=%%2B
::echo %st% return--> &2B
call set pw=%%pw:+=%st%%%
::echo %pw% return--> mypassword2B

我找不到进行最后一次调用以返回%pw%=mypassword%2B(2B之前带有%(以传递给WinSCP脚本的方法。你能帮帮我吗?还是有另一种策略(但始终在批处理文件中(使 WinSCPopen命令接受正确的密码?提前谢谢。

这似乎有效:

setlocal enabledelayedexpansion
set pw=!pw:+=%%2B!

请注意,您必须删除call

基于批处理 - 替换为百分比符号。


此外,还有另一种方法可以使用-password开关向 WinSCP 提供密码。

open ftp://username@ftp.example.com/ -password="mypassword+"

为此,您需要 WinSCP 5.19。

最新更新