带百分号的WinSCP密码批处理文件

时间:2018-07-19 18:52:54

标签: batch-file cmd winscp

Py远程PC [无法更改其登录密码]几乎没有特殊字符,尤其是百分号(%)。所以我写的WinSCP脚本无法登录。

根据this document,我尝试了以下操作,但没有成功。

我的密码是admin%^&。我遵循了上面的文档,并像这样admin%25^&修改了密码。

如何转义WinSCP登录特殊字符?

C:\Program Files (x86)\WinSCP\WinSCP.com" ^
  /log="C:\!Y!M!D_Log.log" /ini=nul ^
  /command ^
    "open  sftp://admin:admin%25^&@137.55.111.1" ^
    "put *.* %REMOTE_PATH%" ^
    "exit" 

2 个答案:

答案 0 :(得分:3)

^&确实不需要进行编码(尽管不会造成任何危害)。 %所做的与您正确完成的%25一样。如果直接在WinSCP命令行上指定,它将起作用。实际的问题是%在批处理文件中不仅在WinSCP中也具有特殊的含义。 %2被批处理文件的第二个参数替换,甚至在WinSCP启动之前。如果没有为批处理文件提供(第二个)参数,则WinSCP会看到admin5^&%2消失了)。

如果要在批处理文件中原样使用%,则需要将其admin%%25^&加倍。

一种简便的方法是使用WinSCP GUI generate a batch file for you(请注意,它甚至会[不必要地]编码^&)。

答案 1 :(得分:-1)

答案是,您需要查看UTF-8图表并替换字符。

所以admin%^&现在是admin%25%5e%26