zunaras
Goto Top

Wochentag ermitteln, Samstag und Sonntag mit Fehler

Schönen guten Tag,

ich habe hier ein kleines Skript, mit dem man die Wochentagnummer und den Wochennamen auswertet und zusammenfasst.

REM Wochentag als Zahl
for /F "skip=2 tokens=2-4 delims=," %%A in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do set "Tagnummer=%%A"  
echo %Tagnummer%

REM Wochentag ausgeschrieben
set daysofweek=Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag
for /F "tokens=%Tagnummer% delims=," %%B in ("%daysofweek%") do set Tagname=%%B  
echo %Tagname%
Set Wochentag=%Tagnummer%_%Tagname%
echo %Wochentag%

Von Montag bis Freitag ist alles OK. Als Ergebnis kommt z.B. 4_Donnerstag heraus.

Bei Samstag und Sonntag kommt aber ein Fehler -> siehe unten Zeile 10. Könnte mir dabei bitte jemand helfen?
Bei Sonntag kommt z.B. die "0" als Ergebnis statt die "7". Aber damit kann ich leben.

C:\Users\ich\Desktop>REM Wochentag als Zahl

C:\Users\ich\Desktop>for /F "skip=2 tokens=2-4 delims=," %A in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do set "Tagnummer=%A"  
" \Users\ich\Desktop>set "Tagnummer=0  
C:\Users\ich\Desktop>echo 0
0
C:\Users\ich\Desktop>REM Wochentag ausgeschrieben
C:\Users\ich\Desktop>set daysofweek=Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag
C:\Users\ich\Desktop>for /F "tokens=0 delims=," %B in ("Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag") do set Tagname=%B  
" delims=,"" kann syntaktisch an dieser Stelle nicht verarbeitet werden.  
C:\Users\ich\Desktop>echo
ECHO ist eingeschaltet (ON).
C:\Users\ich\Desktop>Set Wochentag=0_
C:\Users\ich\Desktop>echo 0_

Viele Grüße

Content-Key: 2795941908

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

Printed on: April 27, 2024 at 17:04 o'clock

Member: TK1987
Solution TK1987 May 16, 2022 updated at 07:50:18 (UTC)
Goto Top
Moin,

Zitat von @Zunaras:
Bei Samstag und Sonntag kommt aber ein Fehler -> siehe unten Zeile 10.
Sonntag hat auch den Wert 0 und Montag bis Samstag 1-6. Die Fehlermeldung erscheint, da "Tokens=0" keinen Sinn ergibt.

Könnte mir dabei bitte jemand helfen?
Mit Powershell geht das Ganze erheblich leichter:
Get-Date -Format "dddd"  

Kann man, wenn man unbedingt will, auch von batch aus:
for /f %%B in ('powershell -Command Get-Date -Format "dddd"') do set Tagname=%%B   

Powershell Leitfaden für Anfänger

Gruß Thomas
Member: MrCount
Solution MrCount May 16, 2022 at 07:26:46 (UTC)
Goto Top
Servus,

Bei Sonntag kommt z.B. die "0" als Ergebnis statt die "7". Aber damit kann ich leben.

die 0 für Sonntag ist normal, siehe https://docs.microsoft.com/de-de/previous-versions/windows/desktop/wmiti ...
Member: Zunaras
Zunaras May 16, 2022 at 07:51:09 (UTC)
Goto Top
Hallo ihr beiden,

vielen Dank für die Hilfe!

Viele Grüße
Member: Winfried-HH
Winfried-HH May 16, 2022 updated at 11:40:52 (UTC)
Goto Top
Bei Sonntag kommt z.B. die "0"

Logisch, der Sonntag ist ja auch nicht der letzte Tag der Woche, sondern der erste. Die Woche mit ihren sieben Tagen stammt ja aus der biblischen Schöpfungsgeschichte. Der letzte Tag der Schöpfungswoche war der Sabbat, an dem Gott ruhte und auch die Menschen ruhen sollten. Der entspricht aber nicht dem Sonntag, sondern dem Samstag. Dass heute unser "Wochen-Feiertag" der Sonntag ist, liegt an den ersten Christen, die nicht mehr den Sabbat begingen, sondern den Tag der Auferstehung Jesu - und das ist lt. Lk 24,1 der erste Tag der Woche gewesen. Im Laufe der Zeit fielen dann in manche christlich-geprägten Länder der Sonntag mit dem arbeitsfreien Sabbat gefühlt zusammen und der Sonntag wanderte als neuer Sabbat an das Ende der Kalenderwoche. Ich weiß nicht, ob das mit Luther zusammenhängt, der ja das dritte Gebot nicht mehr bibelgetreu mit "Heilige den Sabbat", sondern mit "Heilige den Feiertag" übersetzt hat.

Die angelsächsischen Länder zählen aber weiter richtig, also den Sonntag als ersten Tag der Woche.