我正在尝试创建一个脚本,通过SFTP将文件从本地Windows文件夹传输到unix环境。我对代码稍作修改(FX%timestamp%.txt
)
这样,要发送的文件名等于今天的日期。
当我将这些命令复制到命令提示符时,代码已经有效。
结果:文件从c:\upload
复制到opt/dev/public_html/TEST/aperture/public/fx_rates
"C:\Program Files\WinSCP\WinSCP.com" ^
/command ^
"open sftp://ApertureUATusr:kiakit04@10.19.20.193/ -hostkey=""ssh-ed25519 256 f1:bd:8f:ad:ae:6f:93:a9:e5:ae:79:64:03:49:0a:09""" ^
"lcd C:\upload" ^
"cd /opt/dev/public_html/TEST/aperture/public/fx_rates" ^
"put -transfer=ascii -permissions=0777 FX%TIMESTAMP#yyyymmdd%.txt" ^
"exit"
问题是此代码不能作为.BAT文件运行。我设法在运行batfile时获取屏幕截图,当我检查错误时,系统将其读作FX.txt
而不是FX20180221.txt
答案 0 :(得分:1)
如documentation for the WinSCP %TIMESTAMP%
syntax中所述:
要在批处理文件中的命令行上使用
%TIMESTAMP%
,您需要将%
转义为%%TIMESTAMP%%
两倍,以避免批处理文件解释程序尝试解析变量
所以你需要这个:
"put -transfer=ascii -permissions=0777 FX%%TIMESTAMP#yyyymmdd%%.txt" ^