我被要求通过 WinSCP 自动执行一些 SFTP 下载过程。我不熟悉 WinSCP 脚本。
ftprun.cmd:
C:\Program Files\WinSCP\winscp.com" /script=D:\testsftp\ftpscript.txt
ftp脚本.txt:
option batch continue
option confirm off
open [email protected]
set mydate=%date:~6,4%%date:~3,2%%date:~0,2%
cd /cygdrive/h/ftproot/PROD/MRMRSA/eMotor/
lcd D:\testsftp
mkdir %mydate%
exit
当我运行脚本时,系统显示
未知命令‘set’。
我一直在想办法解决这个问题,但没有成功。
答案1
set
WinSCP中确实没有命令。
这set
命令,使用您所使用的语法,是一个 Windows 命令。
因此,您需要从 Windows 批处理文件(例如您的)执行它ftprun.cmd
。
WinSCP可以解析Windows环境变量在其脚本中:
因此,您实际上需要做的就是将该set
行移至ftprun.cmd
, 调用之前winscp.com
:
set mydate=%date:~6,4%%date:~3,2%%date:~0,2%
"C:\Program Files\WinSCP\winscp.com" /script=D:\testsftp\ftpscript.txt
无论如何,请注意,您的date
魔法是特定于语言环境的,因此请确保使用脚本的每台机器都使用与您开发/测试此脚本的机器相同的语言环境(语言)。例如,在我的捷克语言环境中,解析mydate
为无意义的06.12čt
,因为date
是čt 12. 06. 2014
。
更好的解决方案是使用 WinSCP%TIMESTAMP%
句法:
mkdir %TIMESTAMP#yyyymmdd%