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-Key: 62584

Url: https://administrator.de/contentid/62584

Printed on: April 25, 2024 at 14:04 o'clock

Member: talkinghands
talkinghands Jun 28, 2007 at 11:35:11 (UTC)
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
Member: Markx
Markx Jun 28, 2007 at 12:34:18 (UTC)
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..
Mitglied: 6741
6741 Jun 28, 2007 at 23:03:33 (UTC)
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ß
Member: bastla
bastla Jun 28, 2007 at 23:47:13 (UTC)
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
Mitglied: 6741
6741 Jun 29, 2007 at 00:00:58 (UTC)
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ß
Member: bastla
bastla Jun 29, 2007 at 00:07:35 (UTC)
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]