WinFuture-Forum.de: Probleme mit Batch-Skript - If-Verschachtelung - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Probleme mit Batch-Skript - If-Verschachtelung


#1 Mitglied ist offline   ukr 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 31. Mai 22
  • Reputation: 0

geschrieben 31. Mai 2022 - 11:57

Ich habe folgendes Batch-Skript geschrieben:
Setlocal enabledelayedexpansion
Set /A h1 = 12
Set /A m1 = 10
Set /A h2 = 14
Set /A m2 = 50
If %h2% GTR %h1% (
    Set /A h = %h2% - %h1% -1
    Set /A m = 60 - %m1% + %m2%
    If "%m%" GEQ 60 (
        Set /A m = %m% - 60
        Set /A h = %h% + 1
        )
    ) Else (
        Set /A h = 0
        Set /A m = %m2% - %m1%
    )
    Echo %h% Stunde(n) und %m% Minuten
    pause



Die erste If-Bedingung wird einwandfrei ausgewertet und die Anweisungen werden ausgeführt. Die zweite If-Bedingung wird jedoch nicht ausgeführt und ich bekomme nicht heraus, woran dies liegen könnte. Kann mir jemand helfen bzw. zeigen, ob und wo sich evtl. ein Fehler eingeschlichen hat?

Monitor-Bild angehängt

Angehängte Miniaturbilder

  • Angehängtes Bild: Bat-Datei Time.png

0

Anzeige



#2 Mitglied ist offline   MasterP82 

  • Gruppe: aktive Mitglieder
  • Beiträge: 221
  • Beigetreten: 30. Juni 12
  • Reputation: 10

geschrieben 18. Dezember 2022 - 21:59

Ja ich bin ein Leichenschänder, aber ich möchte auf sein Problem eingehen, wenn auch zu spät.

du nutzt Setlocal enabledelayedexpansion nicht, brauchst du auch nicht, in deiner Schreibweise wäre die Auswertung etwas umgebaut so:
If h2 GTR h1 (Set /A h=h2-h1-1, m=60-m1+m2) Else (Set /A h=0, m=m2-m1)
If m GEQ 60 Set /A m-=60, h+=1



Ich persönlich würde es so schreiben:
Set /a x=60*(h2-h1)+m2-m1,h=x/60,m=x%%60

0

Thema verteilen:


Seite 1 von 1

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