Jump to content

FOR-Schlaufe mit Setzen einer Variable


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

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

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

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...