Batch file 批处理如何检查文件夹中的特定文件修改日期

Batch file 批处理如何检查文件夹中的特定文件修改日期,batch-file,batch-processing,Batch File,Batch Processing,正如上面的代码,我想列出文件夹中文件的修改日期,但是,它不起作用,有什么建议吗?您应该在脚本开头添加setlocal EnableDelayedExpansion,然后使用!变数而不是%variable% 有关启用延迟扩展的详细信息,请参阅答案 您还需要将选项/s添加到dir以获取文件的完整路径,从而正确获取数据时间。然后,如果只需要文件名,请使用%%~nxf而不是%%~f 这是密码 for /f %%f in ('dir /b "\\rspdb1\e$\master10\rspadvrec.b

正如上面的代码,我想列出文件夹中文件的修改日期,但是,它不起作用,有什么建议吗?

您应该在脚本开头添加
setlocal EnableDelayedExpansion
,然后使用
!变数而不是
%variable%

有关启用延迟扩展的详细信息,请参阅答案

您还需要将选项
/s
添加到
dir
以获取文件的完整路径,从而正确获取数据时间。然后,如果只需要文件名,请使用
%%~nxf
而不是
%%~f

这是密码

for /f %%f in ('dir /b "\\rspdb1\e$\master10\rspadvrec.b*" "\\rspdb1\e$\master10\rspadvrec.d*" "\\rspdb1\e$\master10\rspadvrec.lg*" "\\rspdb1\e$\master10\rspadvpdt.a*"') do (
    set fileDateTime=%%~tf
    set fileName=%%f
    echo %fileDateTime%
    echo %fileName%
)

很抱歉,我忘了在代码开头提到“setlocal EnableDelayedExpansion”,而且!fileDateTime!没用,只是修改了答案。要获取数据时间,需要将“/s”传递到“dir”以获取文件的完整路径。然后使用“%%~nxf”从完整路径获取文件名。非常好。它起作用了。非常感谢您的宝贵时间和回答。我也想在for循环中加入if-else语句,比如if!fileDateTime:~0,10!==2014年9月1日,但它不起作用,有什么建议吗?您需要添加引号,如“!fileDateTime:~0,10!”==“2014年9月1日”
@echo off & setlocal EnableDelayedExpansion
for /f %%f in ('dir /b /s "\\rspdb1\e$\master10\rspadvrec.b*" "\\rspdb1\e$\master10\rspadvrec.d*" "\\rspdb1\e$\master10\rspadvrec.lg*" "\\rspdb1\e$\master10\rspadvpdt.a*"') do (
    set fileDateTime=%%~tf
    set fileName=%%~nxf
    echo !fileDateTime!
    echo !fileName!
)