批量如何检查文件夹中特定文件修改日期

时间:2014-09-01 06:12:45

标签: batch-file batch-processing

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%
)

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

1 个答案:

答案 0 :(得分:1)

您应该在脚本的开头添加setlocal EnableDelayedExpansion,并使用!variable!代替%variable%

有关EnableDelayedExpansion的详细信息,请参阅答案https://stackoverflow.com/a/18464353/2749114

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

以下是代码。

@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!
)