belloci
Goto Top

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

Content-Key: 222581

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

Printed on: April 19, 2024 at 15:04 o'clock

Member: Endoro
Endoro Nov 21, 2013 at 07:54:23 (UTC)
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.
Member: Belloci
Belloci Nov 21, 2013 at 11:07:15 (UTC)
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... :/
Member: andimue
andimue Nov 21, 2013 at 12:17:00 (UTC)
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
Member: Belloci
Belloci Nov 21, 2013 at 12:29:37 (UTC)
Goto Top
In der Tat, das hatte ich nicht... Aber auch nach dem entfernen des "echo" vor dem del befehl gehts nicht!

Gruß
Member: Endoro
Endoro Nov 21, 2013 at 13:37:02 (UTC)
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.
Member: Belloci
Belloci Nov 21, 2013 at 14:12:06 (UTC)
Goto Top
Danke, jetzt läuft es!

Gruß
Belloci