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 Zitieren
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! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.