Auch wenn es mittlerweile Ur-Alt-Technologie ist, ab und zu braucht man gute alte Batch-Dateien. Diesmal brauchte ich eine Batch-Datei die je nach Wochentag anders agiert. Dafür hätte man auch einzelne Batch-Dateien erstellen können und dann entsprechend für jeden Wochentag eine Aufgabe in der Windows-Aufgabenplanung anlegen können. Aber da der Aufgabendialog meiner Meinung nach immer noch relativ bescheiden gestaltet ist, habe ich dort lieber nur wenige Einträge zu verwalten 😀
Leider gibt es, wohl seit Windows XP, keine brauchbare Möglichkeit direkt über die CMD den Wochentag herauszufinden. Stattdessen muss man sich beispielsweise der WMIC-Tools bedienen und mit einer Abfrage wie der folgenden den Wochentag als Zahl ermitteln. Danach setzt man die Zahl beispielsweise in eine Abkürzung für den Wochentag um. Die Abkürzung der Variable „DOW“ steht für „Day Of Week“.
1 2 3 4 5 6 7 8 9 10 11 12 |
set DOW= for /f %%g in ('wmic path win32_localtime get dayofweek^|findstr /v /r "^$"') do ( set DOW=%%g) if %DOW%==0 set DOW=So if %DOW%==1 set DOW=Mo if %DOW%==2 set DOW=Di if %DOW%==3 set DOW=Mi if %DOW%==4 set DOW=Do if %DOW%==5 set DOW=Fr if %DOW%==6 set DOW=Sa |
Den Rest der Batch baut man dann einfach wie folgt auf:
1 2 3 4 5 6 7 |
if %DOW%==So ( # do something ) if %DOW%==Mo ( # do something ) # ... |
Goto in C#, Python, PHP, Excel VBA, Bash, PowerShell nutzen?
Batch: if und else - Syntax verstehen
While- und Until-Schleifen in PowerShell und Batch
Wie lange läuft mein PC schon? – PC Laufzeit auslesen unter Windows 10
Wochentag in einer Batch-Datei ermitteln
CMD/Powershell: Ping-Ergebnis mit Errorlevel auswerten
Skript um Zeit-basiert Dateien zu tauschen
Die Gefahr durch mit Adminrechten ausgeführte Skripte
Powershell und CMD: Clear um Konsole zu leeren?
Java-Anwendungen über CMD oder Powershell starten
Kommandozeile aus Explorer in geöffnetem Ordner
Umlaute in Batch-Dateien – immer wieder schön
Danke. Das hilft mir; war genau, was ich gebraucht habe.
Und dass es sowas wie WMIC gibt, habe ich nun auch gelernt.
Hallo tsmm,
gern geschehen 😉
In der Powershell geht es auch besser, schreibe ich vielleicht auch noch was zu.
Viele Grüße
Tobias