So finden Sie Dateien, die älter als X-mal in ein Verzeichnis

Müssen, finden Sie Dateien in einem Ordner die älter als X Stunden. Das haben die in charge, denn das ist eine ältere server, die wir nicht wollen, zu laden, alles andere auf. Diese basiert auf Finden Sie heraus, wenn die Datei älter als 4 Stunden in Batch-Datei, aber diese Lösung wurde geschrieben für Sie nur für einen statischen Dateinamen. Ich habe es angepasst für mehrere Dateien, und US-format Datum, aber das problem ich habe in der Datei Minuten es ist Kommissionierung bis das 'a' oder 'p' für am oder pm. Ich habe meine teilweise mit Lösung unten (funktioniert nicht Datum, Mathematik und die echos auf dem Bildschirm mit dem Namen und Datum/Zeit-Werte). Irgendwelche Ideen auf, wie loswerden von a oder 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
  • Zuerst von allen, AM/PM? Warum nicht die 24-Stunden-dates? Afaik Ihr es standardmäßig. Auch, wenn Sie auf Windows gibt es andere native batch-Skript-Sprachen, die Sie verwenden können, um besser zu schreiben ein zuverlässiger Skript, das hängt nicht von dem aktuellen system-Einstellungen, wie VBScript, CScript, und es können auch JavaScript ausführen als batch-Skript.
  • wir könnten wahrscheinlich ein vbscript, das ist aber ein altes Windows 2000 (insert schaudern hier) server ausführen von legacy-software und versuchen zu vermeiden, eine Programmierung bei der Aufrechterhaltung es. Kaum bekommen Vergangenheit "freeze" auf dem server um ein batch-Skript ausführen, um zu lösen dieses problem.
InformationsquelleAutor KMC | 2013-03-11
Schreibe einen Kommentar