Hallo,
ich möchte mit einem Batch-Skript unter Windows den Wochentag auslesen und danach je nach Wochentag
unterschiedliche Dateien (HTML-Datei des aktuellen Tages und des Folgetages) in ein bestimmtes
Verzeichnis kopieren. Der Wochentag wird als Variable daynumber von 1 - 7 ausgelesen. Das scheint zu funktionieren. Danach habe ich eine If/else Anweisung angefügt, die offensichtlich irgendeinen Fehler
hat. Ganz egal welcher Tag es ist, es wird die letzte Anweisung ausgeführt.
Weiß jemand, worin mein Fehler liegt?
Danke für jede Hilfe
Andreas
Hier ist mein Skript:
REM Wochentag als Zahl auslesen
for /F "skip=2 tokens=2-4 delims=," %%A in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do set daynumber=%%A
if "%daynumber%" EQU "5" do (
copy H:\test_fr.htm J:\test\1.htm
copy H:\test_mo.htm J:\test\2.htm
) else
if "%daynumber%" EQU "4" do (
copy H:\test_do.htm J:\test\1.htm
copy H:\test_fr.htm J:\test\2.htm
) else
if "%daynumber%" EQU "3" do (
copy H:\test_mi.htm J:\test\1.htm
copy H:\test_do.htm J:\test\2.htm
) else
if "%daynumber%" EQU "2" do (
copy H:\test_di.htm J:\test\1.htm
copy H:\test_mi.htm J:\test\2.htm
) else
if "%daynumber%" EQU "1" do (
copy H:\test_mo.htm J:\test\1.htm
copy H:\test_di.htm J:\test\2.htm
)
Seite 1 von 1
Wochentag / bedingte Aktion Wochentag auslesen und passende Dateien kopieren
Anzeige
#2
geschrieben 04. März 2017 - 13:02
Es werden alle ausgeführt, nicht nur die letzte Anweisung.
IF lässt, wenn die Bedingung wahr ist, den nächsten Befehl ausführen. In deinem fall "do", welcher aber nicht existiert.
Du musst das DO entfernen, damit der Befehlsblock nur bei einer wahren Bedingung ausgeführt wird.
ELSE führt ebenfalls den nächsten Befehl aus der direkt danach steht. In deinem Fall nichts, da das nächste IF in der nächsten Zeile steht.
Bei deiner Abfrage brauchst du aber keine ELSE, da nur eine Bedingung wahr sein kann.
IF lässt, wenn die Bedingung wahr ist, den nächsten Befehl ausführen. In deinem fall "do", welcher aber nicht existiert.
Du musst das DO entfernen, damit der Befehlsblock nur bei einer wahren Bedingung ausgeführt wird.
if "%daynumber%" EQU "5" ( REM copy ... )
ELSE führt ebenfalls den nächsten Befehl aus der direkt danach steht. In deinem Fall nichts, da das nächste IF in der nächsten Zeile steht.
Bei deiner Abfrage brauchst du aber keine ELSE, da nur eine Bedingung wahr sein kann.
- ← DOS / Batch Dateien ahand von Änderungsdarum verschieben
- Skript/Web-Programmierung
- Batch File das Videos mit bestimmter Länge löscht →
Thema verteilen:
Seite 1 von 1