6741
Goto Top

Batch soll txt vergleichen und löschen

Hallo,

ich habe einen Ordner auf einem Win2003 Server. Dort stehen div *.txt Dateien diese müsste ich gegen einen Unterordner prüfen und sollte diese im Unterordner sein, sollte diese im Unterordner gelöscht werden.

\\server\abc

steht hier eine *.txt Datei und ist diese im Unterodner dann soll diese im Unterordner gelöscht werden.

Die File haben folgenden Namen.

abcd1..... - 300.txt abcd bleibt immer gleichnur die Zahl läuft hoch.

Gruß

Danke vorab ...

Content-ID: 62584

Url: https://administrator.de/forum/batch-soll-txt-vergleichen-und-loeschen-62584.html

Ausgedruckt am: 13.04.2025 um 19:04 Uhr

talkinghands
talkinghands 28.06.2007 um 13:35:11 Uhr
Goto Top
meinst Du mit löschen eine Datei mit gleicher Bezeichung z.B. 1234.txt ?

falls das der Fall sein sollte, dann

copy \\server\1234.txt \\server\abs\1234.txt

wenn die Datei vorhanden ist, wird sie überschrieben

ciao

Matthias
Markx
Markx 28.06.2007 um 14:34:18 Uhr
Goto Top
also wenn ich dich richtig verstanden habe, dann müsste das Script so in etwa ausschauen:

IF EXIST \\server\ordner\abc.txt DEL \\server\ordner\unterordner\abc.txt

Falls das nicht deine Anforderung war/ist, sag bescheid..
6741
6741 29.06.2007 um 01:03:33 Uhr
Goto Top
moin ...

die Dateien zählen von abcd001 bis abcd300 numerisch hoch jede Datei die in \\server\ordner\ und im \\server\ordner\unterordner ist soll aus \\server\ordner\unterordner löscht werden.

hoffe das das klar ausgedrückt ist ..

gruß
bastla
bastla 29.06.2007 um 01:47:13 Uhr
Goto Top
Hallo firewalldevil!

Ganz klar wäre es, wenn Du noch sagen könntest, ob die Dateien nur den gleichen Namen haben oder tatsächlich gleich (im Sinne von: "mit identischem Inhalt") sein müssen ...

Für den Fall, dass "gleichnamig" genügt:
for %i in ("\\server\ordner\abcd*.*") do @if exist "\\server\ordner\unterordner\%~nxi" @echo del "\\server\ordner\unterordner\%~nxi"  
Diese Zeile kannst Du direkt von der Kommandozeile testen. Damit nix Schlimmes passiert, wird wegen des "@echo" vor dem "del" nur angezeigt, was sie bewirken würde. Wenn's passt, das Ganze ohne "@echo" ausführen.

Falls die Zeile in einer Batchdatei verwendet werden soll, %i durch %%i und jedes %~nxi durch %%~nxi ersetzen.

Grüße
bastla
6741
6741 29.06.2007 um 02:00:58 Uhr
Goto Top
der Inhalt ist gleich ....

ich überprüfe die Systeme mit

if exist c:\......program..... then > \\server\program_ist_inst_\pcnummer.txt

mit einer weitern Abfrage prüfe ich nochmals, ob evtl noch das alte Programm da ist ( virenscanner ).

Wenn ich den jetzt aktualisieren, dann überprüft die batch jeden morgen jeden pc. Also vor der neuen inst haben ich den alten scanner erkannt und nach der inst den neuen, jetzt möchte ich nicht jeden aus der Liste der alten steichen, sondern per batch bereinigen.

\\server\ordner ( neuer Scanner ) hier muss ich nicht mehr inst

\\server\ordner\unterordner\ ( alter Scanner erkannt )

wenn der neue Scanner inst ist soll er mit einer Batch aus den alten Ordner gelsöcht werden ...

gruß
bastla
bastla 29.06.2007 um 02:07:35 Uhr
Goto Top
Hallo firewalldevil!

Dann brauchst Du also die Batchvariante:
for %%i in ("\\server\ordner\abcd*.txt") do @if exist "\\server\ordner\unterordner\%%~nxi" @echo del "\\server\ordner\unterordner\%%~nxi"  
Ansonsten wie oben (Stichwort "@echo").

Grüße
bastla

[Edit] Dateinamenbeispiel auf "abcd*.txt" geändert. [/Edit]