gelöst Robocopy Backupscript Datumsauswertung
SuperSonic (Level 1) - Jetzt verbinden
24.11.2011, aktualisiert 18.10.2012, 3641 Aufrufe, 20 Kommentare
Problem mit der Datumsauswertung.
Ich bräuchte mal eine kleine hilfe, irgendwie stehe ich gerade auf dem Schlauch.
Mein Backupscript wertet das Datum aus dieses wird dann in die Variable WoTa reinschrieben.
Wenn ich diese Variable ausgebe, sagt er mir auch das heute Donnerstag ist.
Allerdings unten in meiner IF Abfrage... verwendet er immer den Montag und nicht den Donnerstag, somit wird mein Backupverzeichnis ins Verzeichnis Montag kopiert.
Ich komm im moment nicht auf den Fehler.
Das Script ist noch im Aufbau, also haut mich nicht
Danke schonmal...
Mein Backupscript wertet das Datum aus dieses wird dann in die Variable WoTa reinschrieben.
Wenn ich diese Variable ausgebe, sagt er mir auch das heute Donnerstag ist.
Allerdings unten in meiner IF Abfrage... verwendet er immer den Montag und nicht den Donnerstag, somit wird mein Backupverzeichnis ins Verzeichnis Montag kopiert.
Ich komm im moment nicht auf den Fehler.
01.
@Echo off & setlocal
02.
03.
FOR /F "tokens=1,2,3 delims=." %%a in ('echo %date%') do set yy=%%c & set mm=%%b & set dd=%%a
04.
05.
set /a "TwoDigitYearMax=2038%%1000"
06.
07.
if 1%yy% LSS 200 if 1%yy% LSS 1%TwoDigitYearMax% (set yy=20%yy%) else (set yy=19%yy%)
08.
09.
set /a dd=100%dd%%%100,mm=100%mm%%%100
10.
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,dow=153*m+2
11.
set /a dow=dow/5+dd+y*365+y/4-y/100+y/400-2472630,dow%%=7,dow+=1
12.
13.
If %dow% equ 1 set "WoTa=Montag"
14.
If %dow% equ 2 set "WoTa=Dienstag"
15.
If %dow% equ 3 set "WoTa=Mittwoch"
16.
If %dow% equ 4 set "WoTa=Donnerstag"
17.
If %dow% equ 5 set "WoTa=Freitag"
18.
If %dow% equ 6 set "WoTa=Samstag"
19.
If %dow% equ 7 set "WoTa=Sonntag"
20.
21.
22.
23.
SET RC_path="C:\WINDOWS\System32\ROBOCOPY.EXE"
24.
SET Quelle="C:\Users\test\Downloads"
25.
26.
27.
SET bck_Mo="C:\Montag_Freitag\Montag"
28.
SET bck_Di="C:\Montag_Freitag\Dienstag"
29.
SET bck_Mi="C:\Montag_Freitag\Mittwoch"
30.
SET bck_Do="C:\Montag_Freitag\Donnerstag"
31.
SET bck_Fr="C:\Montag_Freitag\Freitag"
32.
33.
34.
SET Log_dir="C:\test\Backups\Robocopy\"
35.
SET Log_filename=%Log_dir%%WoTa%_%JJ%_%MM%_%TT%.log
36.
SET Copy_MoFr=/MIR /COPYALL /DCOPY:T /A
37.
SET Copy_Fr=/MIR /COPYALL
38.
REM SET Optionen=/R:0 /W:0 /NP / TEE /LOG+:%Log_filename%
39.
40.
41.
if %WoTa%==Montag goto Montag
42.
:Montag
43.
Echo J|del c:\Montag_Freitag\Montag\*.*
44.
%RC_path% %Quelle% %bck_Mo% %Copy_MoFr%
45.
46.
47.
if %WoTa%==Dienstag goto Dienstag
48.
:Dienstag
49.
Echo J|del c:\Montag_Freitag\Dienstag\*.*
50.
%RC_path% %Quelle% %bck_Di% %Copy_MoFr%
51.
52.
53.
if %WoTa%==Mittwoch goto Mittwoch
54.
:Mittwoch
55.
Echo J|del C:\Montag_Freitag\Mittwoch\*.*
56.
%RC_path%%Quelle% %bck_Mi% %Copy_MoFr%
57.
58.
59.
if %WoTa%==Donnerstag goto Donnerstag
60.
:Donnerstag
61.
Echo J|del C:\Montag_Freitag\Donnerstag\*.*
62.
%RC_path%%Quelle% %bck_Do% %Copy_MoFr%
63.
64.
65.
if %WoTa%==Freitag goto Freitag
66.
:Freitag
67.
Echo J|del C:\Montag_Freitag\Freitag\*.*
68.
%RC_path%%Quelle% %bck_Do% %Copy_MoFr%
69.
70.
:END
71.
Danke schonmal...
20 Antworten
- LÖSUNG Skyemugen schreibt am 24.11.2011 um 13:24:45 Uhr
- LÖSUNG SuperSonic schreibt am 24.11.2011 um 13:43:25 Uhr
- LÖSUNG Skyemugen schreibt am 24.11.2011 um 13:48:48 Uhr
- LÖSUNG SuperSonic schreibt am 24.11.2011 um 20:19:35 Uhr
- LÖSUNG Skyemugen schreibt am 24.11.2011 um 20:40:43 Uhr
- LÖSUNG Biber schreibt am 29.11.2011 um 19:30:40 Uhr
- LÖSUNG SuperSonic schreibt am 29.11.2011 um 21:11:32 Uhr
- LÖSUNG Biber schreibt am 30.11.2011 um 15:22:08 Uhr
- LÖSUNG Skyemugen schreibt am 30.11.2011 um 15:27:18 Uhr
- LÖSUNG Biber schreibt am 30.11.2011 um 15:39:48 Uhr
- LÖSUNG SuperSonic schreibt am 30.11.2011 um 16:38:42 Uhr
- LÖSUNG Skyemugen schreibt am 30.11.2011 um 16:46:05 Uhr
- LÖSUNG SuperSonic schreibt am 30.11.2011 um 17:31:47 Uhr
- LÖSUNG Biber schreibt am 30.11.2011 um 17:01:38 Uhr
- LÖSUNG Skyemugen schreibt am 30.11.2011 um 17:09:45 Uhr
- LÖSUNG SuperSonic schreibt am 30.11.2011 um 17:32:34 Uhr
- LÖSUNG Skyemugen schreibt am 30.11.2011 um 16:46:05 Uhr
- LÖSUNG SuperSonic schreibt am 30.11.2011 um 16:38:42 Uhr
- LÖSUNG Biber schreibt am 30.11.2011 um 15:39:48 Uhr
- LÖSUNG Skyemugen schreibt am 30.11.2011 um 15:27:18 Uhr
- LÖSUNG Biber schreibt am 30.11.2011 um 15:22:08 Uhr
- LÖSUNG 60730 schreibt am 30.11.2011 um 17:28:55 Uhr
- LÖSUNG SuperSonic schreibt am 30.11.2011 um 17:33:34 Uhr
- LÖSUNG 60730 schreibt am 30.11.2011 um 18:10:50 Uhr
- LÖSUNG Biber schreibt am 30.11.2011 um 18:22:44 Uhr
- LÖSUNG SuperSonic schreibt am 30.11.2011 um 17:33:34 Uhr
- LÖSUNG SuperSonic schreibt am 29.11.2011 um 21:11:32 Uhr
- LÖSUNG SuperSonic schreibt am 24.11.2011 um 20:19:35 Uhr
- LÖSUNG Skyemugen schreibt am 24.11.2011 um 13:48:48 Uhr
- LÖSUNG SuperSonic schreibt am 24.11.2011 um 13:43:25 Uhr
LÖSUNG 24.11.2011, aktualisiert 18.10.2012
Aloha,
wenn du schon das Skript aus diesem Thread nimmst und mit robocopy arbeitest, warum nutzt du dann nicht das zweite Skript von Biber, was simpler und sicherer ist?
Sicherer wäre es dann wohl auch, wenn du deine if-Abfragen einfach weglässt und nur goto %WoTa% nutzt und am Ende jeweiliger Sprungmarke ein goto :eof einfügst (und damit das Skript beendest)
greetz André
P.S.: Wir mögen hier eigentlich, dass man uns vorher begrüßt, bevor man uns auf sein Problem loslässt ...
- Dein Problem sind die aufeinanderfolgenden Sprungmarken mit halbfertigen if-Abfragen, wenn ich das Datum am Rechner ändere, sodass ein anderer WoTa ensteht, gibt er mir per echo %WoTa% auch den korrekten Wochentag aus.
- Was machst du nächstes Jahr? => Schaltjahr
- Batch und Datum ... na egal,
wenn du schon das Skript aus diesem Thread nimmst und mit robocopy arbeitest, warum nutzt du dann nicht das zweite Skript von Biber, was simpler und sicherer ist?
Sicherer wäre es dann wohl auch, wenn du deine if-Abfragen einfach weglässt und nur goto %WoTa% nutzt und am Ende jeweiliger Sprungmarke ein goto :eof einfügst (und damit das Skript beendest)
greetz André
P.S.: Wir mögen hier eigentlich, dass man uns vorher begrüßt, bevor man uns auf sein Problem loslässt ...
LÖSUNG 24.11.2011 um 13:43 Uhr
Danke erstmal für deine Antwort.
Nachdem ich noch ein paar Minuten drüber nach gedacht habe... kam die sache auch mit dem IF ELSE... allerdings wenn das nette Ding so verschachtel...
funktioniert die Sache auch nicht... wahrscheinlich stelle ich mich etwas zu blöde an.
Was deine andere Punkte angeht, da werd ich mir sicherlich nochmal Gedanken drüber machen...
Sollte jetzt erstmal nur ein Testlauf mit dem Script sein...
Nachdem ich noch ein paar Minuten drüber nach gedacht habe... kam die sache auch mit dem IF ELSE... allerdings wenn das nette Ding so verschachtel...
funktioniert die Sache auch nicht... wahrscheinlich stelle ich mich etwas zu blöde an.
01.
if %WoTa%=="Montag" goto Montag (
02.
:Montag
03.
Echo J|del c:\Montag_Freitag\Montag\*.*
04.
%RC_path% %Quelle% %bck_Mo% %Copy_MoFr%
05.
) ELSE
06.
if %WoTa%=="Dienstag" goto Dienstag (
07.
:Dienstag
08.
Echo J|del c:\Montag_Freitag\Dienstag\*.*
09.
%RC_path% %Quelle% %bck_Di% %Copy_MoFr%
10.
) ELSE
11.
if %WoTa%=="Mittwoch" goto Mittwoch (
12.
:Mittwoch
13.
Echo J|del C:\Montag_Freitag\Mittwoch\*.*
14.
%RC_path%%Quelle% %bck_Mi% %Copy_MoFr%
15.
) ELSE
16.
if %WoTa%=="Donnerstag" goto Donnerstag (
17.
:Donnerstag
18.
Echo J|del C:\Montag_Freitag\Donnerstag\*.*
19.
%RC_path%%Quelle% %bck_Do% %Copy_MoFr%
20.
) Else
21.
if %WoTa%=="Freitag" goto Freitag
22.
:Freitag
23.
Echo J|del C:\Montag_Freitag\Freitag\*.*
24.
%RC_path%%Quelle% %bck_Do% %Copy_MoFr%
Sollte jetzt erstmal nur ein Testlauf mit dem Script sein...
LÖSUNG 24.11.2011 um 13:48 Uhr
Sicherer wäre es dann wohl auch, wenn du deine if-Abfragen einfach weglässt und nur goto %WoTa% nutzt face-wink und am Ende jeweiliger Sprungmarke ein goto :eof einfügst (und damit das Skript beendest)
wobei ... nutze %WoTa% doch einfach im Pfad ...
01.
Echo J|del c:\Montag_Freitag\%WoTa%\*.*
02.
%RC_path% %Quelle% "C:\Montag_Freitag\%WoTa%" %Copy_MoFr%
%RC_path%%Quelle% %bck_Do% %Copy_MoFr%
Und das steht auch bei Freitag ...und wo verwendest du eigentlich %Copy_Fr%?
LÖSUNG 24.11.2011 um 20:19 Uhr
Also, irgendwie funktioniert das alles so nicht wie ich will... auch wenn ich das Umstelle... jetzt bin ich echt Verzweifel
LÖSUNG 24.11.2011 um 20:40 Uhr
... naja sei froh, dass T-Mo nicht vorbeiguckt und dir dein €echo off über den Schädel zieht ^__^
LÖSUNG 29.11.2011 um 19:30 Uhr
Moin SuperSonic,
Falls denn das Problem noch besteht, dann poste doch bitte mal den jetzigen Schnipsel-Entwurf.
Dann ziehen wir das glatt.
Ich verschiebe den Beitrag schon mal von "ich hätte lieber Bäckupper werden sollen" nach "Bäck in Hell".
Grüße
Biber
P.S. Und keine Angst - niemand wird T-Mo holen...
Zitat von SuperSonic:
Also, irgendwie funktioniert das alles so nicht wie ich will... auch wenn ich das Umstelle... jetzt bin ich echt Verzweifel
Also, irgendwie funktioniert das alles so nicht wie ich will... auch wenn ich das Umstelle... jetzt bin ich echt Verzweifel
Falls denn das Problem noch besteht, dann poste doch bitte mal den jetzigen Schnipsel-Entwurf.
Dann ziehen wir das glatt.
Ich verschiebe den Beitrag schon mal von "ich hätte lieber Bäckupper werden sollen" nach "Bäck in Hell".
Grüße
Biber
P.S. Und keine Angst - niemand wird T-Mo holen...
LÖSUNG 29.11.2011 um 21:11 Uhr
hallo, biber...
ich versuch das ganze Ding jetzt in VBS zuschreiben. Hab allerdings nicht so viel Erfahrung in VBS.
Bis jetzt sieht der Code so aus:
Wollte dann für jeden Tag eine Prozedur schreiben, allerdings ist mir noch nicht so ganz klar, wie ich, oben bei If Weekday(Heute) =vbSunday Then <Prozeduraufruf> reinschreibe.
wäre das so realisierbar, oder bin ich wieder auf dem falschen Weg ?!
ich versuch das ganze Ding jetzt in VBS zuschreiben. Hab allerdings nicht so viel Erfahrung in VBS.
Bis jetzt sieht der Code so aus:
01.
Dim Heute
02.
03.
Heute = Date()
04.
05.
If Weekday(Heute) = vbSunday Then
06.
If Weekday(Heute) = vbMonday Then
07.
If Weekday(Heute) = vbTuesday Then
08.
If Weekday(Heute) = vbWednesday Then
09.
If Weekday(Heute) = vbThursday Then
10.
If Weekday(Heute) = vbFriday Then
11.
If Weekday(Heute) = vbSaturday Then
12.
13.
Sub Sunday()
14.
WScript.Echo("Heute kein Backup")
15.
END Sub
16.
Wollte dann für jeden Tag eine Prozedur schreiben, allerdings ist mir noch nicht so ganz klar, wie ich, oben bei If Weekday(Heute) =vbSunday Then <Prozeduraufruf> reinschreibe.
wäre das so realisierbar, oder bin ich wieder auf dem falschen Weg ?!
LÖSUNG 30.11.2011 um 15:22 Uhr
Moin SuperSonic,
langsam, langsam.....
Es bringt für das konkrete Anliegen ja nichts, wenn du da eine VBSkript-Hülse drumstrickst statt ein Batch-Mäntelchen.
Was doch eigentlich passieren soll, wenn wir mal die Schörkel weglassen:
Am Ende des Tages soll eine RabottiCopy.exe gestartet werden. Fertig.
Ob ich dat Dingen aus einem Batch oder aus VBS heraus aufrufe....
... ich sach mal so: auch zum Öffnen meines sonntäglichen Frühstückeis stehen mir Werkzeuge vom Plastiklöffel bis zum Gabelstapler zur Verfügung.
Ich würde es aber nicht zu aufwendig angehen.
Das Problem in deiner Batchvariante ist doch nicht die Ermittlung des Wochentages - den bekommst du doch irgendwie.
Das Problem ist, dass du beim Auffächern der 7-Wochentage-7-Möglichkeiten offensichtlich nicht alle 7 Varianten gleichzeitig im Auge behalten kannst und dir immer ein oder zwei davon auf die Füsse fallen.
Also entzerre doch dieses Gestrunkele:
---> analog zu Skyes Vorschlag...
Grüße
Biber
langsam, langsam.....
Es bringt für das konkrete Anliegen ja nichts, wenn du da eine VBSkript-Hülse drumstrickst statt ein Batch-Mäntelchen.
Was doch eigentlich passieren soll, wenn wir mal die Schörkel weglassen:
Am Ende des Tages soll eine RabottiCopy.exe gestartet werden. Fertig.
Ob ich dat Dingen aus einem Batch oder aus VBS heraus aufrufe....
... ich sach mal so: auch zum Öffnen meines sonntäglichen Frühstückeis stehen mir Werkzeuge vom Plastiklöffel bis zum Gabelstapler zur Verfügung.
Ich würde es aber nicht zu aufwendig angehen.
Das Problem in deiner Batchvariante ist doch nicht die Ermittlung des Wochentages - den bekommst du doch irgendwie.
Das Problem ist, dass du beim Auffächern der 7-Wochentage-7-Möglichkeiten offensichtlich nicht alle 7 Varianten gleichzeitig im Auge behalten kannst und dir immer ein oder zwei davon auf die Füsse fallen.
Also entzerre doch dieses Gestrunkele:
01.
...
02.
REM irgendwie irgendwo kommt der Zahlenwert %dow% her...
03.
04.
If %dow% equ 1 set "WoTa=Montag"
05.
If %dow% equ 2 set "WoTa=Dienstag"
06.
If %dow% equ 3 set "WoTa=Mittwoch"
07.
If %dow% equ 4 set "WoTa=Donnerstag"
08.
If %dow% equ 5 set "WoTa=Freitag"
09.
If %dow% equ 6 set "WoTa=Samstag"
10.
If %dow% equ 7 set "WoTa=Sonntag"
11.
12.
13.
14.
SET RC_path="C:\WINDOWS\System32\ROBOCOPY.EXE"
15.
SET Quelle="C:\Users\test\Downloads"
16.
17.
18.
SET bck_Mo="C:\Montag_Freitag\Montag"
19.
SET bck_Di="C:\Montag_Freitag\Dienstag"
20.
SET bck_Mi="C:\Montag_Freitag\Mittwoch"
21.
SET bck_Do="C:\Montag_Freitag\Donnerstag"
22.
SET bck_Fr="C:\Montag_Freitag\Freitag"
23.
24.
25.
SET Log_dir="C:\test\Backups\Robocopy\"
26.
SET Log_filename=%Log_dir%%WoTa%_%JJ%_%MM%_%TT%.log
27.
SET Copy_MoFr=/MIR /COPYALL /DCOPY:T /A
28.
SET Copy_Fr=/MIR /COPYALL
29.
REM SET Optionen=/R:0 /W:0 /NP / TEE /LOG+:%Log_filename%
30.
31.
32.
if %WoTa%==Montag goto Montag
33.
:Montag
34.
Echo J|del c:\Montag_Freitag\Montag\*.*
35.
%RC_path% %Quelle% %bck_Mo% %Copy_MoFr%
36.
37.
38.
if %WoTa%==Dienstag goto Dienstag
39.
:Dienstag
40.
Echo J|del c:\Montag_Freitag\Dienstag\*.*
41.
%RC_path% %Quelle% %bck_Di% %Copy_MoFr%
42.
.....
43.
....
01.
...
02.
If %dow% equ 6 goto :eof && REM kein Backup, Ende
03.
If %dow% equ 7 goto :eof && REM kein Backup, Ende
04.
05.
If %dow% equ 1 set "WoTa=Montag"
06.
If %dow% equ 2 set "WoTa=Dienstag"
07.
If %dow% equ 3 set "WoTa=Mittwoch"
08.
If %dow% equ 4 set "WoTa=Donnerstag"
09.
If %dow% equ 5 set "WoTa=Freitag"
10.
11.
12.
13.
SET RC_path="C:\WINDOWS\System32\ROBOCOPY.EXE"
14.
SET Quelle="C:\Users\test\Downloads"
15.
16.
SET Log_dir="C:\test\Backups\Robocopy\"
17.
SET Log_filename=%Log_dir%%WoTa%_%JJ%_%MM%_%TT%.log
18.
SET Copy_MoFr=/MIR /COPYALL /DCOPY:T /A
19.
SET Copy_Fr=/MIR /COPYALL
20.
REM SET Optionen=/R:0 /W:0 /NP / TEE /LOG+:%Log_filename%
21.
22.
del c:\Montag_Freitag\%WoTa%\*.* /y
23.
%RC_path% %Quelle% c:\Montag_Freitag\%WoTa%\ %Copy_MoFr%
24.
25.
REM das wars.
Grüße
Biber
LÖSUNG 30.11.2011 um 15:27 Uhr
Aloha Biber,
naja nur dass ich auch meinte - sinnvollerweise Zeile 32 als
zu nutzen, denn so benötigt er wirklich nur noch eine Zeile, denn deine eine ist nur für Montag gültig und so spart man sich auch weitere 5 Zeilen im Skript *gg*
greetz André
naja nur dass ich auch meinte - sinnvollerweise Zeile 32 als
01.
%RC_path% %Quelle% "C:\Montag_Freitag\%WoTa%" %Copy_MoFr%
greetz André
LÖSUNG 30.11.2011 um 15:39 Uhr
Upps, Skye,
hatte ich auch grad beim Korrekturlesen meines Beitrags gemerkt und korrigiert - wahrscheinlich während du (zu Recht) deinen Kommentar getippselt hast.
Ist bei mir oben auch korrigiert mitterweile.
Danke & Grüße
Biber
hatte ich auch grad beim Korrekturlesen meines Beitrags gemerkt und korrigiert - wahrscheinlich während du (zu Recht) deinen Kommentar getippselt hast.
Ist bei mir oben auch korrigiert mitterweile.
Danke & Grüße
Biber
LÖSUNG 30.11.2011 um 16:38 Uhr
01.
If %dow% equ 6 goto :eof && REM kein Backup, Ende
02.
If %dow% equ 7 goto :eof && REM kein Backup, Ende
03.
04.
If %dow% equ 1 set "WoTa=Montag"
05.
If %dow% equ 2 set "WoTa=Dienstag"
06.
If %dow% equ 3 set "WoTa=Mittwoch"
07.
If %dow% equ 4 set "WoTa=Donnerstag"
08.
If %dow% equ 5 set "WoTa=Freitag"
09.
10.
11.
12.
SET RC_path="C:\WINDOWS\System32\ROBOCOPY.EXE"
13.
SET Quelle="C:\Users\test\Downloads"
14.
15.
SET Log_dir="C:\test\Backups\Robocopy\"
16.
SET Log_filename=%Log_dir%%WoTa%_%JJ%_%MM%_%TT%.log
17.
SET Copy_MoFr=/MIR /COPYALL /DCOPY:T /A
18.
SET Copy_Fr=/MIR /COPYALL
19.
REM SET Optionen=/R:0 /W:0 /NP / TEE /LOG+:%Log_filename%
20.
21.
del c:\Montag_Freitag\%WoTa%\*.* /y
22.
%RC_path% %Quelle% c:\Montag_Freitag\%WoTa%\ %Copy_MoFr%
Du hast natürlich jetzt noch eine Selektierung für Samstag und Sonntag gemacht, das da kein Backup statt findet. Soweit so klar.
jetzt nimmst du die Variable WoTa und setzt sie praktisch unten in die Robocopy commandline somit wird gleich der Aktuelle Wochentag verwendet und ich muss mich nicht mehr mit meinem IF-Schleifen rumqäulen?
LÖSUNG 30.11.2011, aktualisiert 18.10.2012
... genau das habe ich dir bereits mehrfach geschrieben mit samt Codebox wie du in diesem Beitrag hättest lesen müssen ...
ist doch eigentlich nicht so schwer zu verstehen ... genau dazu hat man doch Variablen
ist doch eigentlich nicht so schwer zu verstehen ... genau dazu hat man doch Variablen
LÖSUNG 30.11.2011 um 17:01 Uhr
Moin SuperSonic,
Genau das war das Wesentliche.
Skye hat es handwerklich noch etwas sauberer/sicherer gemacht in seiner Zeile
.... durch die umschliessenden Anführungszeichen rund um das Kopierziel.
Ebenso sollte auch der Parameter %Quelle% in Anführungszeichen geschrieben werden wegen eventueller Leerzeichen im Pfadnamen.
Das ist aber alles vergleichsweise kosmetisch - wesentlich war das Lernziel
"Sieben mögliche Usecases bedeuten nicht zwangsläufig sieben einzelne Sub-Prozeduren.
Wenn denn 5 Fälle (Mo-Fr) gleich zu behandeln sind und zwei andere Wochentage auch gleich (Sa+So), dann brauche ich keine 7 Variationen, sondern zwei."
Falls du dich unbedingt in IF -Verzweigungen üben willst -- ein IF-Fall wäre ja noch abzubilden.
Die Freitagssicherung ist ja - zumindest in deinem Eröffnungsbeitrag - eine Sonderlocke -> dafür fehlt noch ein IF-Konstrukt.
Grüße
Biber
Zitat von SuperSonic:
>... jetzt nimmst du die Variable WoTa und setzt sie praktisch unten in die Robocopy commandline somit wird gleich der AktuelleWochentag verwendet und ich muss mich nicht mehr mit meinem IF-Schleifen rumqäulen?
Genau das war das Wesentliche.
Skye hat es handwerklich noch etwas sauberer/sicherer gemacht in seiner Zeile
%RC_path% %Quelle% "C:\Montag_Freitag\%WoTa%" %Copy_MoFr%
Ebenso sollte auch der Parameter %Quelle% in Anführungszeichen geschrieben werden wegen eventueller Leerzeichen im Pfadnamen.
Das ist aber alles vergleichsweise kosmetisch - wesentlich war das Lernziel
"Sieben mögliche Usecases bedeuten nicht zwangsläufig sieben einzelne Sub-Prozeduren.
Wenn denn 5 Fälle (Mo-Fr) gleich zu behandeln sind und zwei andere Wochentage auch gleich (Sa+So), dann brauche ich keine 7 Variationen, sondern zwei."
Falls du dich unbedingt in IF -Verzweigungen üben willst -- ein IF-Fall wäre ja noch abzubilden.
Die Freitagssicherung ist ja - zumindest in deinem Eröffnungsbeitrag - eine Sonderlocke -> dafür fehlt noch ein IF-Konstrukt.
Grüße
Biber
LÖSUNG 30.11.2011 um 17:09 Uhr
Zitat von Biber:
Die Freitagssicherung ist ja - zumindest in deinem Eröffnungsbeitrag - eine Sonderlocke -> dafür fehlt noch ein IF-Konstrukt.
Die Freitagssicherung ist ja - zumindest in deinem Eröffnungsbeitrag - eine Sonderlocke -> dafür fehlt noch ein IF-Konstrukt.
Aloha Biber,
ich hielt das eher für einen Fauxpas TEseits Ich bezweifle, dass er zweimal Donnerstag kopieren will er macht lieber neue Threads auf *fg*
greetz André
LÖSUNG 30.11.2011 um 17:28 Uhr
moin,
[OT]
Meinst du - sobald du das zu den anderen nach "Bätsch" verschiebst - kommt der von alleine?
Bin ich schon so vorhersehbar?
[/OT]
[1/2 OT]
André hats ja schon bemerkt, aber
[/1/2 OT]
Ich würd mir den ganzen Schmodder sparen, eine Hauptbatch (etwas mehr als einen 3Zeiler) zimmern, jeden Tag einen eigenen Schedjob anlegen, der gleich als Parameter Montaach;Dienstaach usw. mitliefert und den via %1 auswertet..
Ist aber wahrscheinlich viel zu einfach
Gruß
[OT]
Meinst du - sobald du das zu den anderen nach "Bätsch" verschiebst - kommt der von alleine?
Bin ich schon so vorhersehbar?
[/OT]
[1/2 OT]
André hats ja schon bemerkt, aber
set /a "TwoDigitYearMax=2038%%1000"
liefert bei mir schon ein € ins Sparschwein. Und man heute wirklich noch eine Batch bauen soll, die eventuell das aktuelle datum mit einer 19xx voranstellt?[/1/2 OT]
Ich würd mir den ganzen Schmodder sparen, eine Hauptbatch (etwas mehr als einen 3Zeiler) zimmern, jeden Tag einen eigenen Schedjob anlegen, der gleich als Parameter Montaach;Dienstaach usw. mitliefert und den via %1 auswertet..
Ist aber wahrscheinlich viel zu einfach
Gruß
LÖSUNG 30.11.2011 um 17:31 Uhr
Sorry, ich weiss jetzt was du meinst, ich war wohl etwas geblendet, von meiner tollen Lösung
LÖSUNG 30.11.2011 um 17:32 Uhr
Stimmt, freitag wollte ich ein Vollbackup machen... da kann ich ne IF-abfrage reinknallen.
LÖSUNG 30.11.2011 um 17:33 Uhr
hmmm, ok.. so würd ich es unter Linux machen, aber net unter Windows
LÖSUNG 30.11.2011 um 18:10 Uhr
grübel....
Also ausgerechnet unter Tux wo das mit dem Wochentag Schnickschnack ist?
BTW unter Tux heißt .net mono und weder das eine noch das andere braucht man für das problemchen.
Schade, dass du nicht auf die anderen Zeilen eingehst, Da Leg ich mich wieder hin.
LÖSUNG 30.11.2011 um 18:22 Uhr
Na ja,
T-Mos Jeden-Tag-einen-eigenen-Schedjob-anlegen-Lösung, kombiniert mit meinen Ausführungen bzgl "es gibt eigentlich nur 2 Usecases" führt doch zu den Schluss:
--> dann hast du doch dein 7-Wochentagsproblem auf zwei Fälle reduziert.
Du hast eine einzige Sourcecodestelle, in der du gegebenfalls den Wochentagermittlungsalgorithmus anpassen musst
( wegen unerwartet auftretendem Schaltjahr oder weil wir zur Euro-Rettung einen Wochentag mehr bekommen oder ähnlichem.)
--> die Pfleg- und Wartbarkeit ist gegeben.
Und du hast als zweites einen strunzdoofen Freitagsjob, dem du jedesmal als festen Parameter mitgibst, welcher Tag nun ist.
Ist doch um Welten besser als deine sieben IF-Jonglierbälle gleichzeitig in der Luft.
Grüße
Biber
T-Mos Jeden-Tag-einen-eigenen-Schedjob-anlegen-Lösung, kombiniert mit meinen Ausführungen bzgl "es gibt eigentlich nur 2 Usecases" führt doch zu den Schluss:
- wenn du einen Scheduler-Job anlegst für Montag bis Donnerstag (der den Wochentag ermitteln muss)
- und einen Scheduler-Job anlegst für Freitag, der nur Freitags startet und deshalb automatisch den Wochentag "Freitag" weiss
- und definitiv keinen Job anlegst, der Samstag und Sonntag läuft...
--> dann hast du doch dein 7-Wochentagsproblem auf zwei Fälle reduziert.
Du hast eine einzige Sourcecodestelle, in der du gegebenfalls den Wochentagermittlungsalgorithmus anpassen musst
( wegen unerwartet auftretendem Schaltjahr oder weil wir zur Euro-Rettung einen Wochentag mehr bekommen oder ähnlichem.)
--> die Pfleg- und Wartbarkeit ist gegeben.
Und du hast als zweites einen strunzdoofen Freitagsjob, dem du jedesmal als festen Parameter mitgibst, welcher Tag nun ist.
Ist doch um Welten besser als deine sieben IF-Jonglierbälle gleichzeitig in der Luft.
Grüße
Biber
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte