Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Batchdatei mit täglich neuem Ordner und kopieren aus verschiedenen Quellen

Frage Entwicklung Batch & Shell

Mitglied: das.Mordschaf

das.Mordschaf (Level 1) - Jetzt verbinden

04.06.2012 um 16:13 Uhr, 3563 Aufrufe, 17 Kommentare

Mahlzeit,
ich versuche krampfhaft eine Sicherung für Daten eines Servers mit einer Batchdatei zu erstellen.
Was ansich nicht das Problem ist, aber ich möchte das ein neuer Ordner mit dem Datum angelegt wird
(%date% ...klappt auch) in den dann von verschiedenen Ordnern die Daten reingesichert werden (klappt nicht).
Ich muß irgendwie den folgenden xcopy-Zeilen verklickern, das sie in den %date%-Ordner reinkopieren sollen. Dummerweise weiß ich nicht wie ich das umsetzen soll.
Hat jemand eine Idee oder weiß es einfach, wie ich das realisieren kann?

P.S. ist eine tägliche Sicherung
Mitglied: Skyemugen
04.06.2012 um 16:20 Uhr
Aloha ...

was genau klappt denn nicht? Wie sieht deine Befehlszeile für xcopy denn derzeit aus?

... ich weiß momentan nicht, was daran scheitern sollte, den Zielordner als "C:\Wasweißich\Ordnername_%date%" anzugeben.

greetz André
Bitte warten ..
Mitglied: ITSchlumpf
04.06.2012 um 16:20 Uhr
Hallo Mordschaf,

kannst du vll mal dein bestehendes Skript posten, dann kann man dir vll sagen wo dein Fehler ist.

Gruß
Schlumpf
Bitte warten ..
Mitglied: bastla
04.06.2012 um 16:37 Uhr
@skye
... wobei ein "\" am Ende allerdings sehr zu enpfehlen wäre (da damit vorgegeben wird, dass das Ziel ein Verzeichnis ist) ...

Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
04.06.2012 um 16:44 Uhr
Aloha bastla,

da ich die Zeile des TE nicht kenne, ging ich erst einmal davon aus, dass er /I dabei hat.

greetz André
Bitte warten ..
Mitglied: bastla
04.06.2012 um 16:49 Uhr
[OT] @skye
Wie? Du gehörst auch zu aussterbenden Stamm der Optimisten?

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: bandit76
04.06.2012 um 22:16 Uhr
Hi,
falls du eine möglichkeit suchst das aktuelle Datum in eine Umgebungsvariable zu schreiben -siehe folgendes Beispiel:

FOR /F "tokens=1,2,3,4 delims=/. " %%a in ('date/T') do set CDATE=%%c-%%b-%%d

Das Ergebnis steht in der Variable %CDATE%
unter umständen musst du bei englisch sprachigen Windows das Trennzeichen ändern (delims)
Bitte warten ..
Mitglied: bastla
04.06.2012, aktualisiert um 22:39 Uhr
Hallo bandit76 und willkommen im Forum!

Wo hast Du denn die Zeile ausgegraben? Das letzte Mal, dass vor dem Datum noch der (abgekürzte) Wochentag ausgegeben wurde, war doch unter W2000 ...

Die Schreibweise "JJJJ-MM-TT" wäre sinnvoller und (auch unter W2000 ) eher so zu erreichen:
set "CDATE=%date:~-4%-%date:~-7,2%-%date:~-10,2%"
Grüße
bastla
Bitte warten ..
Mitglied: bandit76
05.06.2012 um 00:14 Uhr
ist bei mir im Produktiveinsatz und läuft unter Win7 und Windows 2008R2 Server bestens (und auch unter XP)

aber dein weg funktioniert natürlich auch!
Bitte warten ..
Mitglied: bastla
05.06.2012 um 09:24 Uhr
Hallo bandit76!

XP Pro SP3 dt:
D:\>date /t 
05.06.2012 
 
D:\>FOR /F "tokens=1,2,3,4 delims=/. " %a in ('date/T') do set CDATE=%c-%b-%d 
 
D:\>set CDATE=2012-06- 
 
D:\>
Grüße
bastla
Bitte warten ..
Mitglied: das.Mordschaf
05.06.2012, aktualisiert um 09:58 Uhr
also versteh ich das richtig, mit:

FOR /F "tokens=1,2,3,4 delims=/. " %%a in ('date/T') do set CDATE=%%c-%%b-%%d

setze ich nur die Variable fürs Datum, die ich dann nach belieben einsetzen kann?
meine Batch sieht nämlich ungefähr so aus

start
xcopy C:\Programm\ort1 E:\Sicherungen\%date%\/E /S /I
xcopy C:\Programm\ort2 E:\Sicherungen\%date%\/E /S /I
end

könnte/müßte ich jetzt %date% durch %cdate% erstezen?
bitte nicht lachen, wenn ich jetzt totale Grütze geschrieben habe
Bitte warten ..
Mitglied: bastla
05.06.2012, aktualisiert um 13:00 Uhr
Hallo das.Mordschaf!
könnte/müßte ich jetzt %date% durch %cdate% erstezen?
Soferne in %cdate% bei Dir der gewünschte Inhalt steht (meine Zweifel und den Alternativvorschlag habe ich oben angemerkt) kannst Du das machen ...
Willst Du übrigens tatsächlich "alles in einen Topf werfen" (also alle kopierten Dateien im Ordner "E:\Sicherungen\%date%" sammeln) oder sollen doch auch noch Unterordner für "ort1" und "ort2" verwendet werden? In diesem Fall müsstest Du diese natürlich im Zielpfad mit angeben:
01.
set "Ziel=E:\Sicherungen\%cdate%" 
02.
xcopy /e "C:\Programm\ort1" "%Ziel%\ort1\" 
03.
xcopy /e "C:\Programm\ort2" "%Ziel%\ort2\"
Grüße
bastla
Bitte warten ..
Mitglied: das.Mordschaf
05.06.2012, aktualisiert um 10:56 Uhr
oki doki,
herzlichsten Dank erstmal
ich probier das jetzt mal aus und habe so die Vermutung, das wir uns in nicht allzu ferner Zukunft wiederlesen
Bitte warten ..
Mitglied: das.Mordschaf
05.06.2012 um 11:23 Uhr
wie angedroht
also meine Batch sieht jetzt folgendermaßen aus

start
FOR /F "tokens=1,2,3,4 delims=/. " %%a in ('date/T') do set CDATE=%%c-%%b-%%d
xcopy C:\test2 C:\test\%cdate%/E /S /I
xcopy C:\test3 C:\test\%cdate%/E /S /I
end

klappt auch alles, bis auf den Ordner der erstellt wird, der heißt "2012-06-" und ich hätte gerne noch den Tag
...bestimmt was ganz einfaches, aber ich seh es leider nicht
Bitte warten ..
Mitglied: bastla
05.06.2012, aktualisiert um 11:30 Uhr
Hallo das.Mordschaf!
...bestimmt was ganz einfaches, aber ich seh es leider nicht
Um mich mal selbst zu zitieren:
Soferne in %cdate% bei Dir der gewünschte Inhalt steht (meine Zweifel und den Alternativvorschlag habe ich oben angemerkt)
Ok, Letzteren etwas weiter oben ...

Abgesehen davon würde ich im Zweifelsfall den Zielpfad nur einmal ermitteln und einer Variablen zuweisen (nicht ganz so weit oben ) ...

... und BTW: Wenn Du "/E" verwendest, brauchst Du kein "/S" mehr (und der "\" am Ende des Zielpfades macht "/I" überflüssig).

Grüße
bastla
Bitte warten ..
Mitglied: das.Mordschaf
05.06.2012 um 11:36 Uhr
ui ui ui....
die Variable wird doch mit
FOR /F "tokens=1,2,3,4 delims=/. " %%a in ('date/T') do set CDATE=%%c-%%b-%%d
ermittelt/erstellt, ja?
ja
und den Zielpfad muß ich doch (in diesem Fall) zweimal angeben, damit Batchi auch weiß wohin der ganze Krempel soll.
Wie gesagt er kopiert mir alles rein, genauso wie es sein soll, nur das der erstellte Ordner nicht ordentlich bezeichnet ist (2012-06- statt 2012-06-05).
Bitte warten ..
Mitglied: bastla
05.06.2012, aktualisiert um 14:32 Uhr
Hallo das.Mordschaf!
die Variable wird doch mit
FOR /F "tokens=1,2,3,4 delims=/. " %%a in ('date/T') do set CDATE=%%c-%%b-%%d
ermittelt/erstellt, ja?
Nicht notwendiger Weise - so geht es auch:
set "CDATE=%date:~-4%-%date:~-7,2%-%date:~-10,2%"
und den Zielpfad muß ich doch (in diesem Fall) zweimal angeben,
Kannst Du so oft wie Du willst - aber ihn mehrmals "zusammenzubauen" sparst Du Dir mit der Verwendung einer Variablen - ein Beispiel steht (schon länger ) hier ...

Grüße
bastla

P.S.: Aber falls Dir sehr an der "for"-Variante liegen sollte, dann aber richtig:
FOR /F "tokens=1-3 delims=. " %%a in ('date/T') do set "CDATE=%%c-%%b-%%a"
Bitte warten ..
Mitglied: das.Mordschaf
05.06.2012 um 13:23 Uhr
Klasse! Danke,
funktioniert jetzt alles prima, die Sache mit dem Datum.
Besten Dank noch mal an alle,
aber speziell an BASTLA

..bis die Tage

das.Mordschaf
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...