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%
)
作为上面的代码,我想列出文件夹中文件的修改日期,但是,它没有用,有什么建议吗?
答案 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!
)