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
GELÖST

Batch Variable mit Kalenderwoche oder ähnliches

Frage Entwicklung Batch & Shell

Mitglied: madmad

madmad (Level 1) - Jetzt verbinden

04.01.2009, aktualisiert 18.10.2012, 14993 Aufrufe, 5 Kommentare

Im Rahmen eines Backupscripts brauch ich eine Variable, die eine Woche lang den gleichen Wert hat und danach um eins höher ist also z.B.:

05.01.09 - 11.01.09 -> %woche% = 1
12.01.09 - 18.01.09 -> %woche% = 2
19.01.09 - 25.01.09 -> %woche% = 3
...

Spontan habe ich überlegt die Kalenderwoche zu nehmen (da die Tatsache dass sie nach ein Jahr von vorne losgehen irelevant ist), allerdings habe ich keine Möglichkeit gefunden die Kalenderwoche auszugeben.

Also habe ich überlegt ob es eine Variable wie "tage/stunden/secunden seid der Unixzeit", gibt dabei ist mir aufgefallen das es im Batch eigentlich nur %time% und %date% gibt.

Da ich die Ausgabe von %date% leider nicht direkt verwenden kann müsste ich sie also irgend wie so umwandeln das sie mir die Anzahl der Montage bzw. Sonntage seit Datum xy ausgibt. Dies übersteigt allerdings meine Fähigkeiten ...

Kann mir also jemand von euch zeigen wie ich sowas realisieren kann, oder kennt jemand von euch einen einfacherren Lösungweg als meine Idee?

Vielen Dank schon mal
Mitglied: bastla
04.01.2009, aktualisiert 18.10.2012
Hallo madmad und willkommen im Forum!

Darf ich Dich zum Thema "Kalenderwoche" gleich zum diesbezüglichen Standardwerk (mindestens für den deutschsprachigen Raum ) von Biber verweisen: Workshop Batch for Runaways Part III Datums- und Zeitvariablen im Batch ...

Solltest Du es sehr eilig haben:
01.
@echo off & setlocal 
02.
set G=%temp%\GetWeek.vbs 
03.
>%G% echo WScript.Echo Datepart("ww",WScript.Arguments(0),2) 
04.
for /f %%i in ('cscript //nologo %G% %date%') do set KalWo=%%i 
05.
echo %KalWo%
Zum Testen kannst Du %date% in der Zeile 4 auch durch eine Datumsangabe im Format "TT.MM.JJJJ" ersetzen.

Grüße
bastla
Bitte warten ..
Mitglied: madmad
04.01.2009 um 19:44 Uhr
Ok danke, dass ist genau das was ich gesucht habe.
Den workshop werde ich mir mal anschauen wenn ich viel zeit hab.
Habe den gerade mal überflogen und ich muss schon sagen, großes Lob an Biber...

Vielen Danck
Bitte warten ..
Mitglied: RoadRacer82
23.10.2016 um 14:27 Uhr
KalenderWoche (Mo-So) per Batch

01.
@ECHO OFF 
02.
setlocal 
03.
chcp 1252>nul 
04.
 
05.
REM KalenderWoche (Mo-SO) 
06.
REM Datum 
07.
set /A d=%date:~0,2% 
08.
set /A m=%date:~3,2% 
09.
set /A y=%date:~6,4% 
10.
 
11.
REM Tag des Jahres 
12.
if %m% == 1 set /A DoY=d 
13.
if %m% == 2 set /A DoY=d+31 
14.
if %m% == 3 set /A DoY=d+59 
15.
if %m% == 4 set /A DoY=d+90 
16.
if %m% == 5 set /A DoY=d+120 
17.
if %m% == 6 set /A DoY=d+151 
18.
if %m% == 7 set /A DoY=d+181 
19.
if %m% == 8 set /A DoY=d+212 
20.
if %m% == 9 set /A DoY=d+243 
21.
if %m% == 10 set /A DoY=d+273 
22.
if %m% == 11 set /A DoY=d+304 
23.
if %m% == 12 set /A DoY=d+334 
24.
 
25.
REM Schaltjahr? 
26.
set /A LY=(y/4)*4 
27.
if %y% NEQ %LY% goto noLY 
28.
if %m% GTR 2 set /A DoY=DoY+1 
29.
 
30.
:noLY 
31.
REM Tag der Woche (Sonntag = 0) 
32.
for /f %%g in ('wmic path win32_localtime get dayofweek^|findstr /v /r "^$"') do (set DoW=%%g) 
33.
REM (Sonntag = 7) 
34.
if %DoW% == 0 set /A DoW=7 
35.
 
36.
REM KW 
37.
set /A nSd=DoY+(7-DoW) 
38.
set /A KW=nSd/7 
39.
set /A delta=nSd-(KW*7) 
40.
if %delta% GTR 3 set /A KW=KW+1 
41.
 
42.
REM führedne Null 
43.
if %KW% LSS 10 set O=0 
44.
 
45.
echo.KW = %O%%KW% 
46.
 
47.
PAUSE 
48.
chcp 850>nul 
49.
endlocal 
50.
EXIT
Bitte warten ..
Mitglied: RoadRacer82
23.10.2016 um 14:53 Uhr
Vorgehen:
Tag des Jahres berechnen ,im falle von von Schaltjahren +1 (ab März).
Tag des Jahres zum nächsten Sonntag "aufrunden" und Anzahl der ganzen Wochen berechnen (Batch rundet ja immer ab).
Delta (Tage von Jahresbeginn zu Wochenanfang) berechnen, wenn Delta > 3 dann Wochen+1 (weil dann die angefangene ja Woche mitzählt).
Führende 0 einfügen wenn KW < 10.
Es bleibt der Makel von KW = 00 z.B. für die ersten 3 Tage diesen Jahres.
Wenn ich mal wieder Langeweile habe wird dann KW 52/53 und als zusätzliche Information das Vorjahr angezeigt.
Bitte warten ..
Mitglied: rubberman
23.10.2016 um 15:20 Uhr
Hallo RoadRacer82.

Der Thread ist uralt und das Problem ist rein mathematisch und wurde längst gelöst.
ritchielawrence.github.io/batchfunctionlibrary/
01.
@echo off &setlocal 
02.
 
03.
set /a "yy=2016,mm=10,dd=23" 
04.
call :DateToWeek %yy% %mm% %dd% yn cw dw 
05.
echo Jahr %yn% 
06.
echo Woche %cw% 
07.
echo Tag der Woche %dw% 
08.
pause 
09.
exit /b 
10.
 
11.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  
12.
 :DateToWeek %yy% %mm% %dd% yn cw dw 
13.
 :: 
14.
 :: By:   Ritchie Lawrence, Updated 2002-11-20. Version 1.1 
15.
 :: 
16.
 :: Func: Returns an ISO 8601 Week date from a calendar date. 
17.
 ::       For NT4/2000/XP/2003. 
18.
 ::  
19.
 :: Args: %1 year component to be converted, 2 or 4 digits (by val) 
20.
 ::       %2 month component to be converted, leading zero ok (by val) 
21.
 ::       %3 day of month to be converted, leading zero ok (by val) 
22.
 ::       %4 var to receive year, 4 digits (by ref) 
23.
 ::       %5 var to receive calendar week, 2 digits, 01 to 53 (by ref) 
24.
 ::       %6 var to receive day of week, 1 digit, 1 to 7 (by ref) 
25.
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
26.
 setlocal ENABLEEXTENSIONS 
27.
 set yy=%1&set mm=%2&set dd=%3 
28.
 if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%) 
29.
 set /a dd=100%dd%%%100,mm=100%mm%%%100 
30.
 set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,Jd=153*m+2 
31.
 set /a Jd=Jd/5+dd+y*365+y/4-y/100+y/400-32045 
32.
 set /a y=yy+4798,Jp=y*365+y/4-y/100+y/400-31738,t=Jp+3,Jp=t-t%%7 
33.
 set /a y=yy+4799,Jt=y*365+y/4-y/100+y/400-31738,t=Jt+3,Jt=t-t%%7 
34.
 set /a y=yy+4800,Jn=y*365+y/4-y/100+y/400-31738,t=Jn+3,Jn=t-t%%7 
35.
 set /a Jr=%Jp%,yn=yy-1,yn+=Jd/Jt,yn+=Jd/Jn 
36.
 if %Jd% GEQ %Jn% (set /a Jr=%Jn%) else (if %Jd% GEQ %Jt% set /a Jr=%Jt%) 
37.
 set /a diff=Jd-Jr,cw=diff/7+1,wd=diff%%7,wd+=1 
38.
 if %cw% LSS 10 set cw=0%cw% 
39.
 endlocal&set %4=%yn%&set %5=%cw%&set %6=%wd%&goto :EOF 
40.
 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Grüße
rubberman
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch - Variablen
gelöst Frage von Marlon1Batch & Shell2 Kommentare

Hallo, Ich habe eine Frage zu Variablen. Und zwar ob es irgendwie geht das Batch mit ein IF Befehl ...

Microsoft Office
VBA Textformatierung Kalenderwoche
gelöst Frage von Florian86Microsoft Office3 Kommentare

Hallo, ich habe folgende Formel im Excel =WENN(A10="";"";"40"+$G$6&TEXT(KALENDERWOCHE(($C$6);21);"00")&WOCHENTAG($C$6;2)) Beispielergebnis: 41071 diese möchte ich mit VBA in die Zelle schreiben. ...

Batch & Shell
Batch-Variable rechnet immer weiter
Frage von ZwergkaninchenBatch & Shell4 Kommentare

Hallo, Leute! Ich wollte mir ein kleines Idle-Game in Batch schreiben, aber ich komm nicht weiter. Hier ist ein ...

Batch & Shell
Batch: Variable einen Wert zuweisen
gelöst Frage von veniplexBatch & Shell7 Kommentare

Hallo zusammen! Ich bin gerade am verzweifeln Ich habe in Batch 2 Variablen: Wenn ich mir von diesen den ...

Neue Wissensbeiträge
Datenschutz

Weitere Inforamtionen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 2 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 4 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 7 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Erkennung und -Abwehr

Sicherheitslücke Spectre und Meltdown: Status prüfen

Anleitung von Frank vor 13 StundenErkennung und -Abwehr2 Kommentare

Nach all den Updates der letzten Woche sollte man unbedingt auch den Status prüfen, ob die Sicherheitslücken Spectre, Meltdown ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
Frage von Winfried-HHBatch & Shell15 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...