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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 222581

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

Ausgedruckt am: 11.05.2025 um 21:05 Uhr

Endoro
Endoro 21.11.2013 um 08:54:23 Uhr
Goto Top
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 21.11.2013 um 12:07:15 Uhr
Goto Top
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 21.11.2013 um 13:17:00 Uhr
Goto Top
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 21.11.2013 um 13:29:37 Uhr
Goto Top
In der Tat, das hatte ich nicht... Aber auch nach dem entfernen des "echo" vor dem del befehl gehts nicht!

Gruß
Endoro
Endoro 21.11.2013 um 14:37:02 Uhr
Goto Top
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 21.11.2013 um 15:12:06 Uhr
Goto Top
Danke, jetzt läuft es!

Gruß
Belloci