Robocopy, Ordner erstellen mit Datum und Zeit, EDIT Auswertung von Ping
Hallo Forum,
ich bin dabei ein Batch-Script zu basteln, welches mir für Backups Ordner X nach Zeil Y kopiert und dem neuen Ordner dann noch das aktuelle Datum und die Zeit mitgibt.
Sieht aktuell so aus:
set datum=%date%
set zeit=%time%
robocopy "C:\Documents and Settings\%username%\Favorites" /MIR "\\Server\Share$\Backup\Backup.%datum%.%zeit%" /log+:\\Server\Share$\Backup\log.txt
Das ganze funktioniert leider nur mit dem aktuellen Datum.
Sieht also aktuell so aus: \\Server\Share$\Backup\Backup.Datum
Soll aber so aussehen: \\Server\Share$\Backup\Backup.Datum.Zeit
Ich habe schon alle möglichen Variationen ausporbiert. Ich verstehe einfach nicht, warum er die Zeit nicht "frisst". Zuerst dachte ich, dass es nicht geht, weil der Befehl "date" bzw. "time" ja eigentlich eine Eingabe erfordert. Da es mit dem Datum ja aber schon geht...
Vielleicht habt ihr eine Idee?
Danke & Gruß
ich bin dabei ein Batch-Script zu basteln, welches mir für Backups Ordner X nach Zeil Y kopiert und dem neuen Ordner dann noch das aktuelle Datum und die Zeit mitgibt.
Sieht aktuell so aus:
set datum=%date%
set zeit=%time%
robocopy "C:\Documents and Settings\%username%\Favorites" /MIR "\\Server\Share$\Backup\Backup.%datum%.%zeit%" /log+:\\Server\Share$\Backup\log.txt
Das ganze funktioniert leider nur mit dem aktuellen Datum.
Sieht also aktuell so aus: \\Server\Share$\Backup\Backup.Datum
Soll aber so aussehen: \\Server\Share$\Backup\Backup.Datum.Zeit
Ich habe schon alle möglichen Variationen ausporbiert. Ich verstehe einfach nicht, warum er die Zeit nicht "frisst". Zuerst dachte ich, dass es nicht geht, weil der Befehl "date" bzw. "time" ja eigentlich eine Eingabe erfordert. Da es mit dem Datum ja aber schon geht...
Vielleicht habt ihr eine Idee?
Danke & Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 105056
Url: https://administrator.de/forum/robocopy-ordner-erstellen-mit-datum-und-zeit-edit-auswertung-von-ping-105056.html
Ausgedruckt am: 23.12.2024 um 08:12 Uhr
10 Kommentare
Neuester Kommentar
Hallo Teddyhamster2000!
Da in der Zeitangabe Doppelpunkte enthalten sind, kann diese nicht als Bestandteil des Dateinamens verwendet werden ...
Wenn Du Datum- und Zeitstrings selbst zusammenbaust, kannst Du auch zB die Schreibweise "JJJJMMTT" für das Datum verwenden (was etwa das Sortieren leichter macht):
Trennzeichen kannst Du je nach Wunsch noch ergänzen (jeweils zwischen die beiden aufeinander folgenden "%"-Zeichen setzen) ...
[Edit]
Da bei einstelligen Stundenzahlen in der Uhrzeit (also für Zeiten vor 10:00:00) ein (störendes) Leerzeichen am Anfang des Zeitstrings landet, folgende verbesserte Version:
Die Zeile 2 setzt vor den bisherigen Zeitstring noch eine Null und ersetzt dann alle enthaltenen Leerzeichen (kann eigentlich ohnehin nur jenes am Anfang sein) durch "Nichts" (entfernt also die Leerzeichen).
Die Zeile 3 nimmt von dem so behandelten String nur die letzten 6 Stellen (damit nicht auch vor zweistelligen Stundenzahlen noch die "0" steht); sollten noch Trennzeichen vor und nach der Minutenzahl verwendet werden, dann natürlich die letzten 8 Zeichen verwenden.
[/Edit]
Grüße
bastla
Da in der Zeitangabe Doppelpunkte enthalten sind, kann diese nicht als Bestandteil des Dateinamens verwendet werden ...
Wenn Du Datum- und Zeitstrings selbst zusammenbaust, kannst Du auch zB die Schreibweise "JJJJMMTT" für das Datum verwenden (was etwa das Sortieren leichter macht):
set "datum=%date:~-4%%date:~-7,2%%date:~-10,2%"
set "zeit=%time:~0,2%%time:~3,2%%time:~6,2%"
[Edit]
Da bei einstelligen Stundenzahlen in der Uhrzeit (also für Zeiten vor 10:00:00) ein (störendes) Leerzeichen am Anfang des Zeitstrings landet, folgende verbesserte Version:
set "zeit=%time:~0,2%%time:~3,2%%time:~6,2%"
set "zeit=0%zeit: =%"
set "zeit=%zeit:~-6%"
Die Zeile 3 nimmt von dem so behandelten String nur die letzten 6 Stellen (damit nicht auch vor zweistelligen Stundenzahlen noch die "0" steht); sollten noch Trennzeichen vor und nach der Minutenzahl verwendet werden, dann natürlich die letzten 8 Zeichen verwenden.
[/Edit]
Grüße
bastla
Hallo Teddyhamster2000!
Du kannst aber natürlich den Text der "ping"-Ausgabe auswerten, etwa:
Grüße
bastla
Das ändern auch nichts, an dem ErrorLevel unter W2k für Ping...
... was anzunehmen, mir damals aber noch nicht bekannt war ...Du kannst aber natürlich den Text der "ping"-Ausgabe auswerten, etwa:
ping %server% -n 1|findstr "Antwort" >nul || (net send %username% Stelle sicher, dass der Server erreichbar ist! & goto :eof)
bastla
sry, wenn ich diesen älteren Beitrag nochmal hervorhole. Ich habe aber teilweise Infos aus dem zitierten Code übernommen.
Ich setzte Win7 SP1 ein und möchte mit robocopy auf eine externe Festplatte sichern. Dazu habe ich als ersten Versuch folgendes Skript benutzt:
Die Sicherung klappt, jedoch wird der Ordner der Sicherung nicht wie vorgegeben benannt sonder quasi von der Quelle übernommen. Im Dateiexplorer wird er als "Desktop" ohne Zusatz von Datum und Zeit angezeigt. In der Konsole heißt er wie oben im Script vorgegeben. Sobald ich als Quelle einen anderen Ordner angebe, klappt alles zu 100%.
Hat jemand eine Idee?
Grüße
Ich setzte Win7 SP1 ein und möchte mit robocopy auf eine externe Festplatte sichern. Dazu habe ich als ersten Versuch folgendes Skript benutzt:
:: --------------------------- Variablen leeren ---------------------------
set Quelle=
set Ziel=
:: -------------------------------- Variablen setzen ---------------------------------
set "datum=%date:~-4%%date:~-7,2%%date:~-10,2%"
set "zeit=%time:~0,2%%time:~3,2%%time:~6,2%"
set "zeit=0%zeit: =%"
set "zeit=%zeit:~-6%"
set Quelle=C:\users\Uli\Desktop
set Ziel=E:\Backup\Schleppi\sicherung%datum%_%zeit%
mkdir %Ziel%
:: --------------------- Starten der Robocopy ----------------------
@Echo off
robocopy.exe %Quelle% "%Ziel%" /MIR /MT:8 >> "e:\desktop.txt"
pause
Die Sicherung klappt, jedoch wird der Ordner der Sicherung nicht wie vorgegeben benannt sonder quasi von der Quelle übernommen. Im Dateiexplorer wird er als "Desktop" ohne Zusatz von Datum und Zeit angezeigt. In der Konsole heißt er wie oben im Script vorgegeben. Sobald ich als Quelle einen anderen Ordner angebe, klappt alles zu 100%.
Hat jemand eine Idee?
Grüße
Hallo Barney!
Sich hier "dranzuhängen" ist vermutlich nicht die allerbeste Idee - unter der Annahme, dass Du Teddyhamster2000 vermutlich nicht dazu animieren wirst, seinem letzten Login vom Dreikönigstag des Jahres 2009 ein aktuelles folgen zu lassen, könnten wir hier ziemlich unter uns bleiben ...
... wobei ich (abgesehen vom Entfernen der unnötigen Zeilen 2 bis 4 und 15 und einem Hinzufügen von "
Grüße
bastla
Sich hier "dranzuhängen" ist vermutlich nicht die allerbeste Idee - unter der Annahme, dass Du Teddyhamster2000 vermutlich nicht dazu animieren wirst, seinem letzten Login vom Dreikönigstag des Jahres 2009 ein aktuelles folgen zu lassen, könnten wir hier ziemlich unter uns bleiben ...
... wobei ich (abgesehen vom Entfernen der unnötigen Zeilen 2 bis 4 und 15 und einem Hinzufügen von "
setlocal
" sehr weit oben im Code) eigentlich nur einen spontanen Einfall hätte: Setze auch "%Quelle%" in der Zeile 19 unter Anführungszeichen ...Grüße
bastla
Moin Barney,
ergänzend zu bastlas Hinweisen nur ein weiterer: Bei einen Robocopy von "C:\users\DeinUsername" solltest du unter Win7 besser den Schalter /XJ zusätzlich verwenden.
Sonst hast du unter Umständen ein paar komische Seiteneffekte.
Anyway: Sollte das In-Anführungszeichen-Setzen der %Quelle% nichts helfen, dann mach bitte eigenen Beitrag auf.
Grüße
Biber
ergänzend zu bastlas Hinweisen nur ein weiterer: Bei einen Robocopy von "C:\users\DeinUsername" solltest du unter Win7 besser den Schalter /XJ zusätzlich verwenden.
Sonst hast du unter Umständen ein paar komische Seiteneffekte.
Anyway: Sollte das In-Anführungszeichen-Setzen der %Quelle% nichts helfen, dann mach bitte eigenen Beitrag auf.
Grüße
Biber