Batch file 在批处理文件中获取for循环变量的子字符串

Batch file 在批处理文件中获取for循环变量的子字符串,batch-file,for-loop,substring,Batch File,For Loop,Substring,上面的代码是为了获取文件夹中每个文本文件的修改日期,将其缩短为日期(包括空格),并将其与预定变量datestamp进行比较 根据命令提示,filedatetime被设置为文件的修改日期,datestamp保持它应该保持的值,但代码不能正确运行。添加回声!filedatetime!还有回声!文件日期!只返回文本字符串!filedatetime!还有!文件日期!,而不是那些变量所代表的值 查找类似的帖子,答案似乎是延迟扩展,但我很确定这就是我已经在做的。在FOR循环之前放置setlocal enab

上面的代码是为了获取文件夹中每个文本文件的修改日期,将其缩短为日期(包括空格),并将其与预定变量datestamp进行比较

根据命令提示,filedatetime被设置为文件的修改日期,datestamp保持它应该保持的值,但代码不能正确运行。添加回声!filedatetime!还有回声!文件日期!只返回文本字符串!filedatetime!还有!文件日期!,而不是那些变量所代表的值


查找类似的帖子,答案似乎是延迟扩展,但我很确定这就是我已经在做的。

在FOR循环之前放置
setlocal enableDelayedExpansion

这就成功了!我觉得很傻,答案这么简单,谢谢!
for %%f in (*.txt) do (
    set filedatetime=%%~tf
    set filedate=!filedatetime:~0,11!
    if %datestamp%==!filedate! echo true >>C:\pathway\temp_log.txt
)