dressler18

Doppelte Zeilen aus .txt löschen

Hallo,

ich habe ein Script auf unserem Fileserver das rekursiv nach leeren Ordnern sucht und diese dann löscht. Der Vollständigkeit halber wollte ich eine Logdatei erstellen die, die gelöschten Ordner enthält.

set pfad="E:\shares\Daten\Transfer\"  
set vorher="E:\shares\Daten\Transfer\Logs\vorher.txt"  
set nachher="E:\shares\Daten\Transfer\Logs\nachher.txt"  
set logdatei="E:\shares\Daten\Transfer\Logs\geloeschte_verzeichnisse.log"  



rem #######Programm#######

dir %pfad% /ad /s /b >%vorher%

for /F "delims=" %%d in ('dir %pfad% /s /b /ad ^| sort /r') do rd "%%d" >nul  

dir %pfad% /ad /s /b >%nachher%



rem #######LOGDATEI#######

echo --------------Geloeschte leere Verzeichnisse-------------- >%logdatei%
echo ---------------------------------------------------------- >%logdatei%
echo Geloeschte Verzeichnisse					Datum/Uhrzeit				Server >%logdatei%
echo -----------------------					%date%/%time%			%computername% >%logdatei%
echo. >%logdatei%
echo. >%logdatei%
Die Suchfunktion hat mir zwar einige Ergebnisse geliefert, jedoch bin ich aus den Suchergebnissen nicht schlau geworden.
Versucht habe ich es mit folgender Zeile
fc /C %vorher% %nachher% >%logdatei%
dieser kleine Befehl lieferte mir zwar schon fast das richtige Ergebnis jedoch sollten noch die doppelten Einträge daraus gelöscht werden. Wenn jemand einen einfacheren (oder komplett anderen) Weg hat dies zu realisieren bin ich natürlich dafür offen.

Im Falle das es einen längeren komplizierteren Code benötigt, wäre ich froh wenn ihr gleich eine kleine Erklärung dazuschreiben könnt face-smile.

Vielen Dank.

LG
Florian
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 193190

Url: https://administrator.de/forum/doppelte-zeilen-aus-txt-loeschen-193190.html

Ausgedruckt am: 18.05.2025 um 17:05 Uhr

bastla
bastla 23.10.2012 aktualisiert um 21:01:34 Uhr
Goto Top
Hallo dressler18!

Mit "fc" kannst Du nur prüfen, ob die Dateien unterschiedlich sind - sinnvoll, da es ja auch möglich wäre, dass keine Ordner gelöscht wurden. Ungetestet etwa so:
(fc "%vorher%" "%nachher%">nul && (  
    echo Keine Verzeichnisse geloescht!
) || (
    findstr /vxg:"%nachher%" "%vorher%"  
))>>"%logdatei%"  

Grüße
bastla
dressler18
dressler18 24.10.2012 um 14:42:58 Uhr
Goto Top
Hallo Bastla,

hat super funktioniert! Ich musste aber die Option /x bei findstr entfernen, weil ich sonst auch doppelte Ordnernamen in der Logdatei hatte die auch nicht gelöscht wurden.

Nochmals Vielen Dank.

LG