Aktuelle Dateien mit Hilfe einer Batch-Routine suchen
Hallo,
ich möchte mit Hilfe eines Batch-Scriptes alle Dateien, deren Änderungsdatum aktueller ist als ein vorgegebenes Datum in eine Datei "Aktuelle_Dateien.txt" schreiben.
Das von mir erstellte Script kann das aber nicht. Ich weiß nicht was da falsch ist.
Beginn des Scripts:
@echo off
setlocal
cls
echo Aktuelle Dateien im Verzeichnis ermitteln!
set "Ergebnisdatei=Aktuelle_Dateien.txt"
TITLE Aktuelle Dateien ermitteln
set myPath=
set /p myPath=Geben Sie einen Pfad ein:
if /i '%myPath%'=='' (
echo Es wurde kein Pfad eingegeben!
pause
exit
)
if /i not exist %myPath% (
goto eof
)
set myDate=
set /p myDate=Geben Sie ein Datum ein:
echo.
echo myDate=%myDate%
echo Aktuelle Dateien im Verzeichnis %myPath% ermitteln und in eine Ergebnisdatei = %Ergebnisdatei% schreiben!
for /f "delims=" %%i in ('dir "%myPath%\*.*" /s /b') do (
if "%%~ti" GEQ "%myDate%" (
echo %%~fi >> %Ergebnisdatei%
)
)
exit
:eof
echo Ungueltiger Pfad: %myPath%
pause
Ende des Scripts
ich möchte mit Hilfe eines Batch-Scriptes alle Dateien, deren Änderungsdatum aktueller ist als ein vorgegebenes Datum in eine Datei "Aktuelle_Dateien.txt" schreiben.
Das von mir erstellte Script kann das aber nicht. Ich weiß nicht was da falsch ist.
Beginn des Scripts:
@echo off
setlocal
cls
echo Aktuelle Dateien im Verzeichnis ermitteln!
set "Ergebnisdatei=Aktuelle_Dateien.txt"
TITLE Aktuelle Dateien ermitteln
set myPath=
set /p myPath=Geben Sie einen Pfad ein:
if /i '%myPath%'=='' (
echo Es wurde kein Pfad eingegeben!
pause
exit
)
if /i not exist %myPath% (
goto eof
)
set myDate=
set /p myDate=Geben Sie ein Datum ein:
echo.
echo myDate=%myDate%
echo Aktuelle Dateien im Verzeichnis %myPath% ermitteln und in eine Ergebnisdatei = %Ergebnisdatei% schreiben!
for /f "delims=" %%i in ('dir "%myPath%\*.*" /s /b') do (
if "%%~ti" GEQ "%myDate%" (
echo %%~fi >> %Ergebnisdatei%
)
)
exit
:eof
echo Ungueltiger Pfad: %myPath%
pause
Ende des Scripts
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 213302
Url: https://administrator.de/contentid/213302
Ausgedruckt am: 25.11.2024 um 17:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo joe65!
Es werden so nicht Datumswerte, sondern Strings verglichen - dadurch wäre zB
größer als
(weil eben "8" > "7"). Wenn Du das Datum in die Form "JJJJMMTT" bringst, wird der Vergleich funktionieren ...
Du könntest das Ganze aber vereinfachen, indem Du
verwendest.
Grüße
bastla
[Edit] Beispiel vervollständigt [/Edit]
Es werden so nicht Datumswerte, sondern Strings verglichen - dadurch wäre zB
01.08.2012
01.07.2013
Du könntest das Ganze aber vereinfachen, indem Du
xcopy /LSY /D:M-T-J "%myPath%" C:\|findstr /vc:"Datei(en) kopiert">"%Ergebnisdatei%"
Grüße
bastla
[Edit] Beispiel vervollständigt [/Edit]
Hallo joe65!
Der "
Grüße
bastla
P.S.: Verwende für Batch-Schnipsel doch bitte "Code"-Formatierung (lässt sich auch nachträglich noch durchführen) ...
Der "
xcopy
"-Befehl (ich habe das Beispiel oben inzwischen komplettiert) ersetzt die gesamte "for
"-Schleife ...Grüße
bastla
P.S.: Verwende für Batch-Schnipsel doch bitte "Code"-Formatierung (lässt sich auch nachträglich noch durchführen) ...