einwegglas
Goto Top

For Schleife mit verkürzter Variable möglich?

Hi Leute,

hab da mal wieder ein Problem (sonst würde ich ja nicht posten), bei dem ich unbedingt Hilfe brauche.

Folgendes Szenario.

Der Code

For /F "tokens=1" %%i in (ausgabe.txt) do echo  %%%i:~6,-26% >> ip.txt  

soll aus jeder Zeile in der Textdatei die IP-Adresse auslesen und in eine neue Textdatei schreiben. Der Aufbau der Text-Datei:

 
.\tmp\171.32.1.1_StatusWindowsUpdate.txt:        STATE              : 1  STOPPED
.\tmp\171.32.1.2_StatusWindowsUpdate.txt:        STATE              : 1  STOPPED
.\tmp\171.32.1.3_StatusWindowsUpdate.txt:        STATE              : 1  STOPPED

Danke schon mal für eure Hilfe

Grüße EWG

Content-ID: 71296

Url: https://administrator.de/contentid/71296

Ausgedruckt am: 05.11.2024 um 21:11 Uhr

Biber
Biber 18.10.2007 um 13:54:20 Uhr
Goto Top
Moin Einwegglas,

das Anwenden der Substring-Funktion ist nicht auf dynamische Variablen (also z.b. die Zählviablen einer FOR-Anweisung) möglich, sondern nur auf statische Variablen.
Das wiederum sind alle, die in irgendeiner Form mit "Set variable=Wert" angelegt sind.
Ob innerhalb oder außerhalb eines Setlocal-Blocks ist nebensächlich.

Für deinen Fall wären also die Möglichkeiten:
For /F "tokens=1" %%i in (ausgabe.txt) do call :MachWasMitI %%i  
goto :eof

:MachWasMitI Parameter1 (%1) ist der Variablenwert von %%i
Set Var=%1
echo  %var:~6,-26% >> ip.txt
goto :eof

-oder-
@echo off % setlocal enableDelayedExpansion
For /F "tokens=1" %%i in (ausgabe.txt) do set "Var=%%i" & echo  !var:~6,-26! >> ip.txt  

Gruß
Biber
einwegglas
einwegglas 18.10.2007 um 14:12:01 Uhr
Goto Top
super Biber. hatte gehofft, dass du schon wach bist face-wink. klappt wunderbar.

danke nochmal

gruß ewg