das.mordschaf
Goto Top

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

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

Content-Key: 185898

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

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

Member: Skyemugen
Skyemugen Jun 04, 2012 at 14:20:17 (UTC)
Goto Top
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é
Member: ITSchlumpf
ITSchlumpf Jun 04, 2012 at 14:20:33 (UTC)
Goto Top
Hallo Mordschaf,

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

Gruß
Schlumpf
Member: bastla
bastla Jun 04, 2012 at 14:37:57 (UTC)
Goto Top
@skye
... wobei ein "\" am Ende allerdings sehr zu enpfehlen wäre (da damit vorgegeben wird, dass das Ziel ein Verzeichnis ist) ...

Grüße
bastla
Member: Skyemugen
Skyemugen Jun 04, 2012 at 14:44:12 (UTC)
Goto Top
Aloha bastla,

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

greetz André
Member: bastla
bastla Jun 04, 2012 at 14:49:37 (UTC)
Goto Top
[OT] @skye
Wie? Du gehörst auch zu aussterbenden Stamm der Optimisten? face-wink

Grüße
bastla
[/OT]
Member: bandit76
bandit76 Jun 04, 2012 at 20:16:46 (UTC)
Goto Top
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)
Member: bastla
bastla Jun 04, 2012 updated at 20:39:17 (UTC)
Goto Top
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 ... face-wink

Die Schreibweise "JJJJ-MM-TT" wäre sinnvoller und (auch unter W2000 face-wink) eher so zu erreichen:
set "CDATE=%date:~-4%-%date:~-7,2%-%date:~-10,2%"
Grüße
bastla
Member: bandit76
bandit76 Jun 04, 2012 at 22:14:25 (UTC)
Goto Top
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!
Member: bastla
bastla Jun 05, 2012 at 07:24:00 (UTC)
Goto Top
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
Member: das.Mordschaf
das.Mordschaf Jun 05, 2012 updated at 07:58:05 (UTC)
Goto Top
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 face-wink
Member: bastla
bastla Jun 05, 2012 updated at 11:00:21 (UTC)
Goto Top
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:
set "Ziel=E:\Sicherungen\%cdate%"  
xcopy /e "C:\Programm\ort1" "%Ziel%\ort1\"  
xcopy /e "C:\Programm\ort2" "%Ziel%\ort2\"  
Grüße
bastla
Member: das.Mordschaf
das.Mordschaf Jun 05, 2012 updated at 08:56:28 (UTC)
Goto Top
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 face-wink
Member: das.Mordschaf
das.Mordschaf Jun 05, 2012 at 09:23:15 (UTC)
Goto Top
wie angedroht face-wink
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
Member: bastla
bastla Jun 05, 2012 updated at 09:30:21 (UTC)
Goto Top
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 ... face-wink

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

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

Grüße
bastla
Member: das.Mordschaf
das.Mordschaf Jun 05, 2012 at 09:36:20 (UTC)
Goto Top
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 face-big-smile
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).
Member: bastla
bastla Jun 05, 2012 updated at 12:32:05 (UTC)
Goto Top
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 face-wink) 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"
Member: das.Mordschaf
das.Mordschaf Jun 05, 2012 at 11:23:37 (UTC)
Goto Top
Klasse! Danke,
funktioniert jetzt alles prima, die Sache mit dem Datum. face-big-smile
Besten Dank noch mal an alle,
aber speziell an BASTLA

..bis die Tage

das.Mordschaf