X 時間より古いフォルダー内のファイルを検索する必要があります。これは、他に何もロードしたくない古いサーバーであるため、バッチで実行する必要があります。これはFind out if file is old than 4 hours in Batch fileに基づいていますが、その解決策は 1 つの静的ファイル名に対してのみ記述されています。複数のファイルと米国の日付形式に合わせて調整しましたが、ファイルの分で問題が発生し、午前または午後の「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