我有以下代码,这些代码根据今天的日期创建一个文件夹,并将文件从文件夹移动到新文件夹。我有以下代码:
set date="%date:~7,2%%date:~4,2%%date:~10,4%"
set mydir=%date%
cd "C:\Users\rnan\Desktop\Batch Files\Tess\File History\"
mkdir "C:\Users\rnan\Desktop\Batch Files\Tess\File History\%mydir%"
"C:\Program Files (x86)\WinSCP\WinSCP.com" /command ^
"open ftp://rnan:[email protected]/tess/" ^
"lcd ""C:\Users\rnan\Desktop\Batch Files\Tess\File History\%mydir%""" ^
"get *.csv>1D" ^
"exit"
此代码创建一个文件夹,但不将任何文件复制到新创建的文件夹。文件正在从FTP服务器复制到新文件夹。请提出一些复制这些文件的更改。
谢谢!
您的代码通常是正确的(date
@Jeff指出变量除外)。
您很可能在周围有错误的空白^
。
^
已上线的最后一个字符。^
与lcd
和在一起时,您似乎后面有空格get
。^
必须以空格开头。以下各行中没有空格。请参见WinSCP常见问题解答为什么批处理文件中WinSCP命令行上指定的某些脚本命令未执行/失败?
同样,不仅您不应该分配date
变量。您甚至不应以这种方式使用它来格式化时间戳,因为date
变量的格式是特定于语言环境的。请参阅在批处理作业中创建文件名作为时间戳。因此,您最好使用另一种方法。
WinSCP本身使用其%TIMESTAMP%
语法支持日期格式。
以下代码解决了问题,^
并使用WinSCP可靠地格式化日期:
set TIMESTAMP_FORMAT=yyyy-mm-dd
cd "C:\Program Files (x86)\WinSCP"
for /F "tokens=* USEBACKQ" %%F in (`WinSCP.com /command "echo %%TIMESTAMP#%TIMESTAMP_FORMAT%%%" "exit"`) do set TIMESTAMP=%%F
set mydir=C:\Users\rnan\Desktop\Batch Files\Tess\File History\%TIMESTAMP%
mkdir "%mydir%"
WinSCP.com /command ^
"open ftp://rnan:[email protected]/tess/" ^
"lcd ""%mydir%""" ^
"get *.csv>1D" ^
"exit"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句