Batchprogrammierung
Batchprogrammierung in verbindung mit robocopy
Hallo erstmal
Wir haben eine BAtchdatei die alle dateien verschieben soll, die älter als 35 tage sind. So sieht der code aus:
robocopy /Q /MOV /minage:35 %PATHTOIMAGE%\oldImages %PATHTOIMAGE%\oldtrash
Wir haben schonn verschiedenste varianten ausprobiert, mit anführungszeichen und ohne, /MOV oder /MOVE,...
aber wir bekommen es nicht hin
Und noch ein zweites Problem. Wir wollen eine bestimmte datei so umbenennen, das datum und uhrzeit im Dateinamen enthalten sind.
Das ist der code:
rename /Q %PATHTOIMAGE%\oldImages\*.hsh oldfull_%date:~0,2%-%date:~3,2%-%date:~6,4%-%time:~0,4%.hsh
Ebenfalls schon alles mögliche probiert, ohne erfolg
Vielen dank im vorraus
Gruß, asdfg321
Hallo erstmal
Wir haben eine BAtchdatei die alle dateien verschieben soll, die älter als 35 tage sind. So sieht der code aus:
robocopy /Q /MOV /minage:35 %PATHTOIMAGE%\oldImages %PATHTOIMAGE%\oldtrash
Wir haben schonn verschiedenste varianten ausprobiert, mit anführungszeichen und ohne, /MOV oder /MOVE,...
aber wir bekommen es nicht hin
Und noch ein zweites Problem. Wir wollen eine bestimmte datei so umbenennen, das datum und uhrzeit im Dateinamen enthalten sind.
Das ist der code:
rename /Q %PATHTOIMAGE%\oldImages\*.hsh oldfull_%date:~0,2%-%date:~3,2%-%date:~6,4%-%time:~0,4%.hsh
Ebenfalls schon alles mögliche probiert, ohne erfolg
Vielen dank im vorraus
Gruß, asdfg321
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 123855
Url: https://administrator.de/forum/batchprogrammierung-123855.html
Ausgedruckt am: 23.04.2025 um 03:04 Uhr
7 Kommentare
Neuester Kommentar

Hallo, und willkommen im Forum.
Die hervorragende Suchfunktion in diesem Forum hast du aber offenbar bei den Möglichkeiten ausgelassen.
Kleiner Tipp:
Im Ergebnis deiner gestrippten Time-Variablen ist sehr wahrscheinlich ein Doppelpunkt enthalten, wenn es sich um die Default-Zeitangabe handeln sollte, das ist ein verbotenes Zeichen in Datei-/Ordnernamen.
Die hervorragende Suchfunktion in diesem Forum hast du aber offenbar bei den Möglichkeiten ausgelassen.
Kleiner Tipp:
Im Ergebnis deiner gestrippten Time-Variablen ist sehr wahrscheinlich ein Doppelpunkt enthalten, wenn es sich um die Default-Zeitangabe handeln sollte, das ist ein verbotenes Zeichen in Datei-/Ordnernamen.
Hi asdfg321,
so wie Du es oben angegeben hast würdest do alle dateein löschen bis auf die letzte.
weil die ja alle gleich heisen würden.
Fürs Aktuelle Datum und Aktuelle Zeit wenn in der %date% Variable kein Wochentag oder Monatsname steht.
oder soll die Erstellungszeit der Datei genommen werden?
Gruß Phil
so wie Du es oben angegeben hast würdest do alle dateein löschen bis auf die letzte.
weil die ja alle gleich heisen würden.
Fürs Aktuelle Datum und Aktuelle Zeit wenn in der %date% Variable kein Wochentag oder Monatsname steht.
pushD "%PATHTOIMAGE%\oldImages"
for /f "tokens=1-5 delims=:." %%i in ("%date%.%time%") do for /f "tokens=*" %%a in ('dir /b "*.hsh"') do move "%%a" "oldfull_%%~na%%i%%j%%k%%l%%m.hsh"
popD
oder soll die Erstellungszeit der Datei genommen werden?
Gruß Phil
Hi!
Alles Baustellen...
Schau dir mal http://home.mnet-online.de/horst.muc/wbat32d.htm an, ist zwar nicht DER vertrauenswürdige Link, aber das Teil tut, und zwar hervorragend.
Zumindest beim verschieben oder löschen.
Für das umbenennen ist der Weg von pieh-ejdsch der richtige Ansatz, mit dem "tokens=1-5 delims" kenn ich mich aber nicht so aus...
mfg MiniStrator
Alles Baustellen...
Schau dir mal http://home.mnet-online.de/horst.muc/wbat32d.htm an, ist zwar nicht DER vertrauenswürdige Link, aber das Teil tut, und zwar hervorragend.
Zumindest beim verschieben oder löschen.
Für das umbenennen ist der Weg von pieh-ejdsch der richtige Ansatz, mit dem "tokens=1-5 delims" kenn ich mich aber nicht so aus...
mfg MiniStrator
@MiniStrator
das tokens wertet die gefundenen Abschnitte die zwischen den im delims angebenen TrennZeichen aus.
%date%.%time% wird ja als 31.08.2009.22:15:05 angezeigt und in der Gruppe der Forschleife aufgedröselt.
also ist 31 das 1. token, 08 das 2. token ... und 15 das 5. token welche dann ohne die delims (weil die ja den Trennzeichensatz bestimmen) ausgegeben werden.
und mit %%i %%j %%k usw. bestimmst Du was Du mit den einzelnen gefunden Sachen machst.welche ja den 1. und folgenden tokens entsprechen wie die Variable in dem fall %%i vor dem **in* in der Forschleife als erstes token angegeben werden.
das Sternchen in tokens löst das was als jeweiliges token an der reihe wäre in den ganzen rest auf der in der For Gruppe gefunden wird. oft wird auch anstelle von "tokens=*" die Version "delims=" genommen also ohne Trennzeichen. im Prinzip also das gleiche.
Gruß Phil
das tokens wertet die gefundenen Abschnitte die zwischen den im delims angebenen TrennZeichen aus.
%date%.%time% wird ja als 31.08.2009.22:15:05 angezeigt und in der Gruppe der Forschleife aufgedröselt.
also ist 31 das 1. token, 08 das 2. token ... und 15 das 5. token welche dann ohne die delims (weil die ja den Trennzeichensatz bestimmen) ausgegeben werden.
und mit %%i %%j %%k usw. bestimmst Du was Du mit den einzelnen gefunden Sachen machst.welche ja den 1. und folgenden tokens entsprechen wie die Variable in dem fall %%i vor dem **in* in der Forschleife als erstes token angegeben werden.
das Sternchen in tokens löst das was als jeweiliges token an der reihe wäre in den ganzen rest auf der in der For Gruppe gefunden wird. oft wird auch anstelle von "tokens=*" die Version "delims=" genommen also ohne Trennzeichen. im Prinzip also das gleiche.
Gruß Phil

In dem von mir geposteten Link zur Suchfunktion findest du eine Anleitung: "Workshop Batch for Runaways Part III Datums- und Zeitvariablen im Batch"
Die wurde seinerzeit sicherlich dazu erstellt, dass man sich informieren kann und sich auch daran orientieren, und sicher nicht, dass sich jeder hier einfach nur bedienen lässt.
Außerdem gibt es jede Menge Threads, die sich mit dem Thema beschäftigen.
Von etwas Eigeniniative stirbst du nicht.
Die wurde seinerzeit sicherlich dazu erstellt, dass man sich informieren kann und sich auch daran orientieren, und sicher nicht, dass sich jeder hier einfach nur bedienen lässt.
Außerdem gibt es jede Menge Threads, die sich mit dem Thema beschäftigen.
Von etwas Eigeniniative stirbst du nicht.