需要在文件夹中查找超过 X 小时的文件。必须批量执行此操作,因为这是一个较旧的服务器,我们不想在其上加载任何其他内容。这是基于Find out if file is older than 4 hours in Batch file,但该解决方案仅针对一个静态文件名编写。我已经针对多个文件和美国日期格式对其进行了调整,但是我在文件分钟中遇到的问题是上午或下午的“a”或“p”。我在下面发布了我的部分解决方案(不执行日期数学并回显到屏幕文件名和日期/时间值)。关于如何摆脱 a 或 p 的任何想法?
rem extract current date
for /f "tokens=1-5 delims=.,/ " %%a in ("%date%") do (
set day=%%c&set mon=%%b&set yr=%%d
)
REM Extract Current Time
for /f "tokens=1-5 delims=.:, " %%a in ("%time%") do (
set hr=%%a&set min=%%b
)
REM BUILD LIST OF FILES IN DIRECTORY
dir /B /O:N c:\mydir\*myfilestub*.* >list.txt
Rem LOOP THROUGH LIST OF FILES and CALL SUBROUTINE TO CHECK FILE DATE
For /F %%A in (list.txt) DO (CALL :CHECKFILE %%A)
GOTO :EOF
:CHECKFILE
REM CHECKING FILE %*
set filename=%*
rem extract file date and time
for /f "tokens=1-5 delims=.:,/ " %%a in ('"dir c:\mydir\%filename%|find "%filename%""') do (
set fday=%%a&set fmon=%%b&set fyr=%%c&set fhr=%%d&set fmin=%%e
)
ECHO %FILENAME% %fday% %fmon% %fyr% %fhr% %fmin%
GOTO :EOF