WinFuture-Forum.de: Wochentag / bedingte Aktion - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Wochentag / bedingte Aktion Wochentag auslesen und passende Dateien kopieren


#1 Mitglied ist offline   andyw001 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 03. März 17
  • Reputation: 0

geschrieben 03. März 2017 - 12:00

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
)
0

Anzeige



#2 Mitglied ist offline   aeris 

  • Gruppe: aktive Mitglieder
  • Beiträge: 129
  • Beigetreten: 06. September 08
  • Reputation: 12
  • Geschlecht:unbekannt

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.
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.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0