具有新名称的FTP文件,其前缀格式为yyyymmdd_hhmmss

时间:2017-01-26 08:56:11

标签: cmd ftp

我在下面写了命令: FTP

open server.com
username
password

cd destination_path\

put \\source_path\test.txt

rename test.txt test_success_%date:~4,2%.%date:~7,2%.%date:~_2%.%time:~0,2%_%time:~3,2%_%time:~6,2%.txt

quit

重命名成功,但名称为test_success_%date:~4,2%.%date:~7,2%.%date:~_2%.%time:~0,2%_%time:~3,2%_%time:~6,2%.txt

不喜欢test_success_20170126_022545.txt(我想要的)。

请帮助我。提前谢谢。

3 个答案:

答案 0 :(得分:0)

试试吧:

rename test.txt 
test_success_%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.txt

我的结果是:test_success_20170126_100649.txt
注意:将它写在一行中,我在这里将它切成两行以获得更好的视图。

答案 1 :(得分:0)

ftp解释器似乎没有处理%的。我经常将ftp命令写入文件,然后运行它。

SET "FTPFILE=%TEMP%\myscript.tmp"

ECHO>"%FTPFILE%" open server.com
ECHO>>"%FTPFILE%" username
ECHO>>"%FTPFILE%" password
ECHO>>"%FTPFILE%" cd destination_path\
ECHO>>"%FTPFILE%" put \\source_path\test.txt
ECHO>>"%FTPFILE%" rename test.txt test_success_%date:~4,2%.%date:~7,2%.%date:~_2%.%time:~0,2%_%time:~3,2%_%time:~6,2%.txt
ECHO>>"%FTPFILE%" quit

ftp -n -s:"%FTPFILE%"

答案 2 :(得分:0)

您展示的代码似乎是ftp会话,但不是cmd会话。 %变量扩展特定于cmd但不属于ftp,因此您的代码无效。

我会在ftp会话中使用固定的临时文件名,稍后在cmd会话中重命名:

ftp会话

open server.com
username
password

cd destination_path\

put \\source_path\test.txt

quit

cmd会话

rename "destination_path\test.txt" "test_success_%date:~4,2%.%date:~7,2%.%date:~-2%.%time:~0,2%_%time:~3,2%_%time:~6,2%.txt"

顺便说一下,有一个错字:你说%date:~_2%而不是%date:~-2% ......