在批处理文件中留下字符串

时间:2016-09-01 08:32:05

标签: string batch-file

我正在写一个.bat文件,其中我试图将文件的最后修改日期与系统日期(仅限日期,而不是时间)进行比较。要获取文件的上次修改日期,请使用以下命令:

for %%? in ("anyFile.png") do set dat=%%~t?

这给了我文件的最后修改日期和时间(dat = 31.08.2016 08:59)。现在我尝试剪切字符串,以便在开头(2016年8月31日)只获得十个字符:

set dat=%dat:~0,10%

如果我直接在控制台中输入代码,它就像一个魅力,但在我的批处理文件中,控制台输出只给我以下内容:

dat=~0,10

我不知道我错过了什么,在互联网上我也找不到任何有类似问题的人。

1 个答案:

答案 0 :(得分:0)

感谢@aschipfl提示,可以通过延迟扩展来解决dat变量的问题:

Setlocal EnableDelayedExpansion
...
if exist "anyFile.png" (

  for %%? in ("anyFile.png") do set dat=%%~t?
  set dat=!dat:~0,10!
)

@ geisterfurz007:不,这不是整个代码。但是现在问题已经解决了,我认为不再需要了。 :)