Nicht (mehr) vorhandene Zeilen beim Dateivergleich finden
Hallo,
gegeben sind zwei Dateien inital.txt (mit dem Anfangsstand eines Dir-Listings) und current.txt (mit dem aktuellen Stand). Ziel ist es, Dateien, die in inital.txt vorhanden, in current.txt jedoch nicht mehr da sind, zu finden.
erzeugt den Inhalt. Mit
bekomme ich die Einträge, die gleich sind, aber wie erwische ich die, die nicht gleich sind?
geTuemII
gegeben sind zwei Dateien inital.txt (mit dem Anfangsstand eines Dir-Listings) und current.txt (mit dem aktuellen Stand). Ziel ist es, Dateien, die in inital.txt vorhanden, in current.txt jedoch nicht mehr da sind, zu finden.
dir /a:-D /n /o:n t:\temp\ > current.txt
For /F "delims=" %%i in (initial.txt) do (
(find "%%i" current.txt >nul) && echo %%i)
geTuemII
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 90149
Url: https://administrator.de/contentid/90149
Ausgedruckt am: 20.11.2024 um 12:11 Uhr
2 Kommentare
Neuester Kommentar
Moin Tuemeli,
versuch es so [Beispiel am CMD-Prompt]:
[Unterschied zwischen "initial" und "current"- DIR-Ausgabe:
-> Datei Test0.bat wurde geändert.
-> test3.bat würde umbenamst.
]
Liebe Grüße
Biber
[Edit] Schwer zu lesen bei einem Zeilenumbruch nach 18einhalb Zeichen...
Als Bätschelchen:
[/Edit]
[Edit2] eigentlich viel zu umständlich... die Frage war ja nur nach den "nich'-mehr-da-Teien"...
[/Edit2]
versuch es so [Beispiel am CMD-Prompt]:
(=19:11:18 C:\TEMP=)
>For /F "delims=" %i in (initial.lst) do @(find "%i" current.lst >nul) || @echo [not_in_new]: %i
[not_in_new]: 06.03.2008 08:29 67 Test0.bat
[not_in_new]: 25.07.2007 23:09 46 test3.bat
[not_in_new]: 36 Datei(en) 30.098 Bytes
(=19:11:39 C:\TEMP=)
>For /F "delims=" %i in (current.lst) do @(find "%i" initial.lst >nul) || @echo [not_in_old]: %i
[not_in_old]: 18.06.2008 18:56 72 Test0.bat
[not_in_old]: 25.07.2007 23:09 46 test3renamed.bat
[not_in_old]: 36 Datei(en) 30.103 Bytes
[Unterschied zwischen "initial" und "current"- DIR-Ausgabe:
-> Datei Test0.bat wurde geändert.
-> test3.bat würde umbenamst.
]
Liebe Grüße
Biber
[Edit] Schwer zu lesen bei einem Zeilenumbruch nach 18einhalb Zeichen...
Als Bätschelchen:
....
For /F "delims=" %%i in (initial.lst) do (
(find "%%i" current.lst >nul) || @echo [not_in_new]: %%i
)
For /F "delims=" %%i in (current.lst) do (
(find "%%i" initial.lst >nul) || @echo [not_in_old]: %%i
)
...
[Edit2] eigentlich viel zu umständlich... die Frage war ja nur nach den "nich'-mehr-da-Teien"...
...
For /F "skip=5 tokens=3,*" %%a in ('find ":" current.lst') do (
@(find "%%b" initial.lst >nul) || @echo [not_in_old]: %%b
)
...