WinSCP 脚本中的变量

WinSCP 脚本中的变量

我被要求通过 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

setWinSCP中确实没有命令。

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%

相关内容