HannesJ 10 Geschrieben 5. Dezember 2005 Melden Teilen Geschrieben 5. Dezember 2005 Hallo allerseits Ich habe da ein Problem mit dem Einlesen einer Variable in einer FOR-Schleife: c:\temp\servers.txt #Textfile mit allen Servern c:\temp\servers1.txt #Hier steht derjenige Wert drin, den ich als Variable gesetzt haben möchte. ______________________________________________ Das ist mein Script: @echo on set ServersFile=c:\temp\servers.txt for /f %%i in (c:\temp\servers.txt) do ( Set /P PathVar=<c:\temp\%%i.txt echo %PathVar% ) Frage: Warum erscheint mit "echo %PathVar%" nicht die gesetzt Variable? Wenn ich hingegen den Batch um ein "set" erweitere und mir so die gesetzten Variablen anzeigen lassen, dann habe ich der Variable "PathVar" einen Wert zugeteilt. Was ich festgestellt habe: Das Setzen bzw. Einlesen der Variable durch "set /P BLABLA=<c:\irgendwas.txt" funktioniert nur in einer Schleife nicht. Weiss hier jemand, wie ich diese Variable auch in einer Schleife durch Einlesen einer Datei setzen kann? Danke im Voraus. Hannesj Zitieren Link zu diesem Kommentar
thorgood 10 Geschrieben 5. Dezember 2005 Melden Teilen Geschrieben 5. Dezember 2005 Hi HannesJ, obwohl dein Beispiel eigentlich funktionieren sollte, versuche es einmal so set ServersFile=c:\temp\servers.txt for /f %%i in (c:\temp\servers.txt) do call :var %%i goto quit :var Set /P PathVar=<c:\temp\%1.txt echo %PathVar% goto :eof :quit thorgood Zitieren Link zu diesem Kommentar
JohnDie 10 Geschrieben 6. Dezember 2005 Melden Teilen Geschrieben 6. Dezember 2005 Hallo, in der Hilfe zum SET Befehl hab ich das hier gefunden: Die verzögerte Erweiterung von Umgebungsvariablen erlaubt es, eine Umgebungsvariable, unter Verwendung eines weiteren Zeichens (dem Ausrufezeichen), zur Laufzeit zu erweitern. Mit aktivierter verzögerter Erweiterung von Umgebungsvariablen können obige Beispiele wie folgt geschrieben werden: set VAR=vorher if "%VAR%" == "vorher" ( set VAR=nachher if "!VAR!" == "nachher" @echo Es funktioniert! ) set LISTE= for %i in (*) do set LISTE=!LISTE! %i echo %LISTE% Evtl. hilft dir das ja. Grüße, JohnDie Zitieren Link zu diesem Kommentar
HannesJ 10 Geschrieben 6. Dezember 2005 Autor Melden Teilen Geschrieben 6. Dezember 2005 Hallo Allerseits Besten Dank für Eure Mithilfe. Das Springen zu einem Punkt durch Aufrufen von Call mit der entsprechenden Variable hat die Lösung gebracht (s. Posting von Thorgood). Vielen Dank. HannesJ Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.