Batch file Can';是否运行BAT文件以生成自定义日期?

Batch file Can';是否运行BAT文件以生成自定义日期?,batch-file,dos,windows-shell,Batch File,Dos,Windows Shell,我在DOS shell中运行以下代码以生成一个SCR文件,然后使用该文件连接到FTP服务器并下载文件 echo open myftp.mywebsite.com >> myscript.SCR echo myusername >> myscript.SCR echo mypassword >> myscript.SCR echo lcd "C:\myfolder" >> myscript.SCR echo cd outgoing >>

我在DOS shell中运行以下代码以生成一个SCR文件,然后使用该文件连接到FTP服务器并下载文件

echo open myftp.mywebsite.com >> myscript.SCR
echo myusername >> myscript.SCR
echo mypassword >> myscript.SCR
echo lcd "C:\myfolder" >> myscript.SCR
echo cd outgoing >> myscript.SCR
上面的代码运行正常,但是BAT文件被下面的代码挂起

for /F "tokens=2-4 delims=/ " %i in ('date /t') do echo get mydownloadfile_%k%i%j.TXT >> myscript.SCR

有人知道解决这个问题的方法吗?谢谢

虽然很难看,但您可以使用日期/时间切片,例如:

echo %date:~10,4%-%date:~4,2%-%date:~7,2%_%time:~0,2%-%time:~3,2%-%time:~6,2% >> mydate.scr

此特定字符串依赖于区域设置,仅适用于美国区域设置。对于其他地区,您需要调整索引。

根据上面ccpizza的回答,我也经常使用内置的字符串操作功能,这对US日期格式很有效

但是,如果您需要确保非美国日期(不同顺序的日期部分)能够正常工作,那么这是您的一个选项

for %%A IN (%Date%) do ( for /F "tokens=1-3 delims=/-" %%B in ("%%~A") do ( set MyDate=%%D%%B%%C ) )
echo get mydownloadfile_%MyDate%.txt >> myscript.SCR
重新排列文件名中的日期部分,使其适合您的文件名格式

  • %%D=年
  • %%B=月份
  • %%C=天