2016-12-23 6 views
0

Ich muss 2 Schwimmerzahlen vergleichen, aber immer auf dem Ausgang stecken bleiben ... Egal was ich eingabe, der Ausgang ist immer der gleiche. Ich habe im Internet gesucht, einige Artikel gefunden, aber keiner von ihnen hat mir geholfen. Hier ist der CodeCMD Vergleichen Sie zwei Zahlen von Eingang

@echo off 
    SETLOCAL ENABLEDELAYEDEXPANSION 

    set /p first = First: 
    set /p second = Second: 
    IF !first! GTR !second! (GOTO One) ELSE (GOTO Two) 

    :One 
    ECHO first 
    GOTO Done 

    :Two 
    IF !first! LSS !second! (ECHO second) ELSE (ECHO Equal) 
    GOTO Done 

    :Done 
    pause 
+0

Lesen Sie die Hilfe für den Befehl, den Sie verwenden möchten. Es wird normalerweise die Antwort für Sie haben. Wenn Sie die Hilfe für den SET-Befehl lesen, werden Sie sehen, dass in keinem der Beispiele NUR ein Leerzeichen vor dem Gleichheitszeichen steht. – Squashman

+0

Sie sollten beachten, dass alle Stapelbefehle, die Nummern verwalten, nur _integer_ Nummern verwalten können. Wenn Sie zwei "float" -Zahlen mit dem "IF" -Befehl vergleichen, werden die Zahlen als Zeichenfolgen verwendet. Probieren Sie es aus: 'IF 123.456 LSS 2.789 ECHO Das ist falsch' – Aacini

Antwort

0
set /p first = First: 

sollte

set /p first=First: 

Spaces sind signifikant auf beiden Seiten eines set - der Raum würde in dem Variablennamen enthalten sein.

+0

Wusste das nicht, danke! –

+0

... Leerzeichen sind jedoch ** nicht ** signifikant in einem 'set/a' – Magoo

+0

Ja, das ist wahr, aber das löst das Problem nicht. – PryroTech