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
Please also mark the comments that contributed to the solution of the article
Content-Key: 90149
Url: https://administrator.de/contentid/90149
Printed on: April 19, 2024 at 23:04 o'clock
2 Comments
Latest comment
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
)
...