Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Batch & Shell

GELÖST

Robocopy, Ordner erstellen mit Datum und Zeit, EDIT Auswertung von Ping

Mitglied: Teddyhamster2000

Teddyhamster2000 (Level 1) - Jetzt verbinden

02.01.2009, aktualisiert 03.01.2009, 25607 Aufrufe, 10 Kommentare

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ß
Mitglied: bastla
02.01.2009 um 13:34 Uhr
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):
01.
set "datum=%date:~-4%%date:~-7,2%%date:~-10,2%" 
02.
set "zeit=%time:~0,2%%time:~3,2%%time:~6,2%"
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:
01.
set "zeit=%time:~0,2%%time:~3,2%%time:~6,2%" 
02.
set "zeit=0%zeit: =%" 
03.
set "zeit=%zeit:~-6%"
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
Bitte warten ..
Mitglied: Teddyhamster2000
02.01.2009 um 14:05 Uhr
Hallo bastla!

Danke für die Antwort! Hat wunderbar geklappt ;)

Was ich noch nicht verstehe, ist dass das Lofile immer überschrieben wird, obwohl ich /log+: verwendet habe...

Edit: War falsch was ich gesagt habe, er überschreibt es nicht, er ergänz das Logfile.

Thema ist also geklärt!
Bitte warten ..
Mitglied: Teddyhamster2000
03.01.2009 um 15:29 Uhr
EDIT: ###

Neues Problem:

Wollte in dem Script noch prüfen, ob der Server per Ping erreichbar ist. Als Vorbild habe ich mir das genommen:

http://www.administrator.de/Automatisierte_Sicherung_per_Robocopy_-_Die ...

Bie mir sieht das aktuell so aus:

.
.
ping %server% -n 1
echo errorlevel:%errorlevel%
if errorlevel==1 (goto C) else (goto D)
:C
net send %username% Stelle sicher, dass der Server erreichbar ist!
exit

:D
rem hier geht es weiter
.
.

Zum Testen habe ich einen Server genommen, der eingeschaltet ist. ErrorLevel ist also 0 -> Script funktioniert.
Bei einem anderen Server, der nicht eingeschaltet ist liefert der Ping eine "Zeitüberschreitung", und dennoch (?!) ErrorLevel 0 -> damit macht das Script trotzdem weiter (logischerweise)
ErrroLevel 1 bekomme ich aktuell nur hin, wenn ich einen Server nehme, den es nicht gibt, damit liefert Ping "unbekannter Host" und bringt ErrorLevel 1.

Muss ich das verstehen?
Bitte warten ..
Mitglied: bastla
03.01.2009 um 15:38 Uhr
Hallo Teddyhamster2000!

Versuch es mit der Schreibweise
if errorlevel 1 (net send %username% Stelle sicher, dass der Server erreichbar ist! & goto :eof)
Noch als Anmerkung: Unter W2000 wird der Errorlevel ev nicht ordnungsgemäß gesetzt ...

Grüße
bastla
Bitte warten ..
Mitglied: Teddyhamster2000
03.01.2009 um 15:42 Uhr
Danke, werde ich mal versuchen.

Aha, es ist Windows 2000 (zumindest ein w2k Client, auf dem ich das Script teste). Weißt du auch warum? Google erzählt nicht ganz so viel zu dem Thema.

Gruß

Edit: Problem wurde hier auch schon mal beschrieben:

http://www.administrator.de/DOS_Batch_Errorlevel_geht_unter_XP,_aber_ni ...

Ist offenbar ein gut gehüteter MS insider Witz...
Bitte warten ..
Mitglied: Teddyhamster2000
04.01.2009 um 23:47 Uhr
Zitat von bastla:
Hallo Teddyhamster2000!

Versuch es mit der Schreibweise
> if errorlevel 1 (net send %username% Stelle sicher, dass der Server 
> erreichbar ist! & goto :eof) 
> 
Noch als Anmerkung: Unter W2000 wird der Errorlevel ev nicht
ordnungsgemäß gesetzt ...

Grüße
bastla

Ich kam jetzt erst zum Testen. Dein Vorschlag funktioniert genau so wie meiner... Das ändern auch nichts, an dem ErrorLevel unter W2k für Ping...
Bitte warten ..
Mitglied: bastla
05.01.2009 um 11:49 Uhr
Hallo Teddyhamster2000!
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)
Grüße
bastla
Bitte warten ..
Mitglied: Barney
29.04.2011 um 16:11 Uhr
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:

01.
 
02.
::        --------------------------- Variablen leeren --------------------------- 
03.
set Quelle= 
04.
set Ziel= 
05.
 
06.
::        -------------------------------- Variablen setzen --------------------------------- 
07.
 
08.
set "datum=%date:~-4%%date:~-7,2%%date:~-10,2%" 
09.
set "zeit=%time:~0,2%%time:~3,2%%time:~6,2%" 
10.
set "zeit=0%zeit: =%" 
11.
set "zeit=%zeit:~-6%" 
12.
set Quelle=C:\users\Uli\Desktop 
13.
set Ziel=E:\Backup\Schleppi\sicherung%datum%_%zeit% 
14.
 
15.
mkdir %Ziel% 
16.
 
17.
::        --------------------- Starten der Robocopy ---------------------- 
18.
@Echo off 
19.
robocopy.exe %Quelle% "%Ziel%" /MIR /MT:8  >> "e:\desktop.txt" 
20.
 
21.
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
Bitte warten ..
Mitglied: bastla
29.04.2011 um 16:45 Uhr
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 "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
Bitte warten ..
Mitglied: Biber
29.04.2011 um 17:37 Uhr
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
Bitte warten ..
Ähnliche Inhalte
Netzwerkprotokolle
Ping aus Auswertung
Frage von FreedomGirlNetzwerkprotokolle5 Kommentare

Aufgabe: Schicken Sie Pakete mit unterschiedlicher Länge zu diesem Ziel (10 relativ gleichmäßig verteilte Paketlängen zwischen 32 Byte und ...

Batch & Shell
Ping Test mit Auswertung
Frage von ArnieeBatch & Shell3 Kommentare

Hallo, Ich habe gestern angefangen Batch zu programmieren und bin noch ein Blutiger anfänger Also nun stehe ich vor ...

Batch & Shell
Datei mit Datum im Namen erstellen
gelöst Frage von pbelclBatch & Shell6 Kommentare

Ich habe mir ein kleines Batch geschrieben, das mir eine Date erstellt, die im Namen das Datum und die ...

Windows Server
Robocopy Ordner-Icons behalten
Frage von sebastian2608Windows Server5 Kommentare

Hallo Leute, heute habe ich mal eine etwas seltsame Frage Ich habe mir ein kleines Script geschrieben, welches mit ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 28 MinutenRouter & Routing

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 7 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 11 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...