anonym360 Geschrieben 4. Februar 2012 Geschrieben 4. Februar 2012 Hi, und zwar habe ich mir gerade diesen Text durchgelesen: set VAR=vorher if "%VAR%" == "vorher" ( set VAR=nachher; if "%VAR%" == "nachher" @echo Es funktioniert! ) Die Meldung würde nie angezeigt, weil %VAR% in beiden IF-Befehlen beim Lesen des ersten IF-Befehls erweitert wird, weil es logisch zu diesem gehört. Daher vergleicht der zweite IF-Befehl "vorher" mit "nachher" was nie gleich sein kann. Was ich daran nicht verstehe ist, warum, das nicht funktionieren soll. Weil doch der zweite set Befehl doch die Variable VAR in nachher umwandelt und dann die letzte if abfrage %VAR (nachher==nachher) dann wahr ist und das Programm dann theoretisch @Echo Es funktioniert" ausgeben müsste. Stehe gerade auf dem Schlauch und mit der dazugehörigen Erklärung wrde ich auch nicht so drauß schlau. Könnte mir dass viellleicht bitte einer mal nochmal auf eine andere Art erklären? Wäre sehr nett. Danke im Voraus. Gruß anonym360
casio Geschrieben 8. Februar 2012 Geschrieben 8. Februar 2012 Das Problem besteht darin (ist ein allgemeines Problem von Dos), dass alle Variablen, die du in einem IF-Blockes setzt, diese erst außerhalb des IF-Blockes den entsprechenden Wert haben. Mach es einfach so: set VAR=vorher if "%VAR%" == "vorher" set VAR=nachher if "%VAR%" == "nachher" @echo Es funktioniert!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden