Jump to content

Kann mir ein Batchprofi dieses Verhalten erklären?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Keine Ahnung ob das bei vor-Win7 Versionen auch so ist, aber gebt mal folgenden Code in die cmd ein und beginnt euch ab 'if 08' zu wundern.

 

 

if 01 lss 0 echo ja
if 02 lss 1 echo ja
if 03 lss 2 echo ja
if 04 lss 3 echo ja
if 05 lss 4 echo ja
if 06 lss 5 echo ja
if 07 lss 6 echo ja
if 08 lss 7 echo ja
if 09 lss 8 echo ja

 

Arg, oder? :eek:

 

 

Das ergibt doch überhaupt keinen Sinn.... :shock:

Link zu diesem Kommentar

Moin,

 

das liegt an der führenden Null. Die führt offenbar zu einer anderen Interpretation der Zeichenkette. Ab "08" funktioniert der Vergleich mit einer Ziffer nicht mehr, du kannst auch mit 8 oder 9 vergleichen.

 

Um das Verhalten zu erklären, müsste man wissen, wie IF den Vergleich überhaupt anstellt. Da es sich aber um einen Zeichenkettenvergleich handelt und nicht um einen mathematischen, ist vermutlich einfach dein Ansatz nicht günstig - was auch immer du erreichen willst.

 

Gruß, Nils

Link zu diesem Kommentar

Hm, könnte es sein, dass die Zahlen durch die führende Null als Oktalzahlen interpretiert werden (das passiert auch bei IP-Adressen, die z.B. nicht 192.168.100.10, sondern 192.168.100.010 geschrieben werden, beim PING etwa) und dass deswegen der Vergleich fehlschlägt ?! Auffallend ist jedenfalls, dass das bis 07 geht und ab 08 nicht mehr ...

Hehe, munteres Raten bei vollkommener Ahnungslosigkeit ... :D

Link zu diesem Kommentar

Hm, dann bringen wir mal Licht ins Dunkel:

Batch File Scripting Techniques: Add or Remove Leading Zeroes

 

Works for numbers 0..9 (without leading zero), 00..07 (with leading zero), and 10..99
Fails on 08 and 09 if %Var% does have a leading zero, because batch file math interprets numbers with leading zeroes as octal

 

Der Blumentopf zum selberschnitzen geht demnach an: ITHome

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...