首页 > 解决方案 > 管理批处理脚本中的特殊字符以编写 WinSCP“打开”连接字符串

问题描述

我正在尝试编写批处理代码以将脚本生成到文件中,以打开与 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(使用%before 2B)传递给 WinSCP 脚本的方法。你能帮我吗?或者是否有另一种策略(但始终在批处理文件中)使 WinSCPopen命令接受正确的密码?提前致谢。

标签: windowsbatch-filecmdsftpwinscp

解决方案


这似乎有效:

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

请注意,您必须删除call.

基于用百分号进行批量替换


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

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

为此,您需要 WinSCP 5.19。


推荐阅读