mac-d
Goto Top

problem mit backup per batch

hi,

ich soll ein backup von images erstellen was mit einer batchdatei und dem befehl xcopy auch wunderbar funktioniert. diese batch-datei wird 2 mal täglich ausgeführt. nun soll sie aber nicht alle daten in den gleichen ordner kopieren sondern jede woche in einen neuen (KW22, KW23....). ich finde aber nur den befehl %date% was mir täglich einen neuen ordner erstellt.

kann jemand einem newbee wie mir helfen?

Content-ID: 16810

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

Ausgedruckt am: 05.11.2024 um 08:11 Uhr

Biber
Biber 27.09.2005 um 19:33:43 Uhr
Goto Top
Moin mac,
unter dem CMD-Prompt gibt es auch nur die Variable %date%.
Eine Kalenderwochen-Funktion gibt es nicht.

Frank / der Biber aus Bremen
mac-d
mac-d 28.09.2005 um 10:23:48 Uhr
Goto Top
danke für die antwort aber leider übersteigt es in einigen punkten meine fähigkeiten. bin ein dummer newbee der alles erklärt braucht.

links tun es auch face-smile

thx mac
Biber
Biber 28.09.2005 um 12:33:22 Uhr
Goto Top
Sorry, mac,
hatte die Frage falsch verstanden und war dann wohl ein wenig Off Topic.
Links habe ich leider nicht zu dem Thema.

Biber
mac-d
mac-d 28.09.2005 um 13:54:38 Uhr
Goto Top
hi biber,

du hast meine frage schon richtig verstanden!! hat mir auch sehr geholfen.
hab rumprobiert und hab das hier geschrieben:

@echo off
set Tag=%date:~-10,2%
set Monat=%date:~-7,2%
set Wtag=%date:~-13,2%
IF %WTag%==Mo Set /a WZahl = 0
IF %WTag%==Di Set /a WZahl = 1
IF %WTag%==Mi Set /a WZahl = 2
IF %WTag%==Do Set /a WZahl = 3
IF %WTag%==Fr Set /a WZahl = 4
IF %WTag%==Sa Set /a WZahl = 5
IF %WTag%==So Set /a WZahl = 6
IF %Monat%==01 Set /a TageVorbei = 0
IF %Monat%==02 Set /a TageVorbei = 31
IF %Monat%==03 Set /a TageVorbei = 31 +28
IF %Monat%==04 Set /a TageVorbei = 31 +28 +31
IF %Monat%==05 Set /a TageVorbei = 31 +28 +31 + 30
IF %Monat%==06 Set /a TageVorbei = 31 +28 +31 + 30 + 31
IF %Monat%==07 Set /a TageVorbei = 31 +28 +31 + 30 + 31 +30
IF %Monat%==08 Set /a TageVorbei = 31 +28 +31 + 30 + 31 +30 +31
IF %Monat%==09 Set /a TageVorbei = 31 +28 +31 + 30 + 31 +30 +31 +31
IF %Monat%==10 Set /a TageVorbei = 31 +28 +31 + 30 + 31 +30 +31 +31 +30
IF %Monat%==11 Set /a TageVorbei = 31 +28 +31 + 30 + 31 +30 +31 +31 +30 +31
IF %Monat%==12 Set /a TageVorbei = 31 +28 +31 + 30 + 31 +30 +31 +31 +30 +31 +30
set /a TagDesJahres = %TageVorbei% + %Tag% - %WZahl% + 7
set /a KW = %TagDesJahres% / 7
echo %kw%
pause

nun hab ich aber doch noch ein paar kleine fragen.

1. "Set Wtag=%date:~-13,2%" funktioniert nur unter win2000 aber leider nicht unter winXp und 2003 server. hat jemand eine idee?

2. wie kommt man auf die ~-13,2 bzw. ~-7,2 etc ????

noch mal thx

mac
Biber
Biber 08.10.2005 um 14:57:19 Uhr
Goto Top
@mac-d

Nachtrag: Falls Du es noch nicht selbst gefunden haben solltest: im Bereich "Batch & Shell" habe ich mich in <a href= target="blank">einem Tutorial <a> über Datumsermittlung (und damit auch über Kalenderwochenberechnung) via CMD-Prompt ausgelassen.

Diese andere Variante, nach der Du in Deinem letzten Kommentar gefragt hast, arbeitet über die Ermittlung von Substrings (Teilzeichenketten oder so ähnlich auf deutsch).

Beispiel: wenn der Aufruf (vom CMD-Prompt aus) "date /t" folgenden Output liefert:
date /t
Sa 08.10.2005

..und Du das ein einer Variablen %datum% gespeichert hättest, dann
dann wäre der Wochentag der Teil-String von Datum, ab Anfang, zwei Zeichen lang. Oder in der CMD-Syntax: %datum:~-0,2%
Das %date:~-13,2% in Deiner Frage wäre entsprechend der Teilstring von %date%, ab Zeichen 14 (da M$ mit 0 anfängt zu zählen), 2 Zeichen lang.
Nur klappt das beim "deutschen " CMD-Prompt und beim "US"-CMD-Prompt unterschiedlich. Und eben auch bei W2K bis XP.
(US-Beispiel)>date
Current Date: Sa 08.10.2005
0123456 ="Current", 8-11="Date" ab 13: "Sa 08...." --> ab 13; 2 Zeichen lang ="Sa"

(dt-Beispiel)>date
Aktuelles Datum: Sa 08.10.2005
Geben Sie das neue Datum ein: (TT-MM-JJ)

012345678 = "Aktuelles"
10-14 ="Datum"; ab 17.Zeichen "Sa 08...."

Ist also eher wackelig, derartige Wochentagsermittlung. Umgehungsstrategie siehe unter dem Link oben

HTH Frank / der Biber aus Bremen