我正在写一个.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
我不知道我错过了什么,在互联网上我也找不到任何有类似问题的人。
答案 0 :(得分:0)
感谢@aschipfl提示,可以通过延迟扩展来解决dat变量的问题:
Setlocal EnableDelayedExpansion
...
if exist "anyFile.png" (
for %%? in ("anyFile.png") do set dat=%%~t?
set dat=!dat:~0,10!
)
@ geisterfurz007:不,这不是整个代码。但是现在问题已经解决了,我认为不再需要了。 :)