belloci

Batchjob - kopieren - bei Erfolg löschen

Hallo Admins,

ich habe derzeit ein kleines Batch-Problem… Folgendes soll realisiert werden:

In einem Pfad: \\Server\Share liegen Textdateien. Es werden jeden Tag vier Textdateien erzeugt die so aufgebaut sind: XYZ_Jahr_Monat_Tag_Stunde_Minute_Sekunde
Die ersten vier Dateien sollen (anhand des Änderungsdatums?!) in einem anderen Share kopiert werden. Bei Erfolg (!) soll der Inhalt des Quellverzeichnis gelöscht werden…

Mein Problem dabei: Wie schaffe ich es, nur die aktuellen Dateien anzupacken und die Dateien nach Erfolg (und nur dann) zu löschen?

Für Anregungen bin ich wie immer sehr dankbar!

Gruß
Belloci
Share on Facebook
Share on X (Twitter)
Share on Reddit
Share on Linkedin

Content-ID: 222581

Url: https://administrator.de/forum/batchjob-kopieren-bei-erfolg-loeschen-222581.html

Printed on: July 16, 2025 at 23:07 o'clock

Endoro
Endoro Nov 21, 2013 at 07:54:23 (UTC)
Hi,
mein Vorschlag:
@ECHO OFF &SETLOCAL
pushd "\\server1\shareX\"  
for /f "tokens=1,2*delims=:_" %%a in ('dir /a-d /b ^|findstr /n $') do (  
	set "$%%c$%%a=%%b"  
)
for /f "tokens=1-4delims==$:" %%a in ('set "$"^|sort /r^|findstr /n $') do if %%a leq 4 (  
	copy "%%d_%%b" "\\server2\shareY\" && echo del "%%d_%%b" || echo error copying "%%d_%%b"  
)
popd
Es ist noch ein echo-Airbag eingebaut.
lg.
Belloci
Belloci Nov 21, 2013 at 11:07:15 (UTC)
Hallo Endoro,

vielen Dank für die Hilfe, dein Skript läuft fast perfekt!

Er kopiert die ersten oder sagen wir die neuesten 4 Dateien - super!

Er löscht jedoch nach Erfolg die alten Dateien im Quellverzeichnis nicht... :/
andimue
andimue Nov 21, 2013 at 12:17:00 (UTC)
Servus Belloci,

ich nehme an, du hast bei deinem Test das "echo" vor dem del-Kommando rausgemacht, oder?
Wenn nicht wäre das einen Versuch wert face-smile

Gruß
Andi
Belloci
Belloci Nov 21, 2013 at 12:29:37 (UTC)
In der Tat, das hatte ich nicht... Aber auch nach dem entfernen des "echo" vor dem del befehl gehts nicht!

Gruß
Endoro
Endoro Nov 21, 2013 at 13:37:02 (UTC)
Hi, aktuell werden nur die 4 kopierten Dateien gelöscht. Um alle zu löschen muss dieses && echo del "%%d_%%b" damit ersetzt werden: && del /q *.
lg.
Belloci
Belloci Nov 21, 2013 at 14:12:06 (UTC)
Danke, jetzt läuft es!

Gruß
Belloci