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-Key: 71296

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

Printed on: April 19, 2024 at 22:04 o'clock

Member: Biber
Biber Oct 18, 2007 at 11:54:20 (UTC)
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
Member: einwegglas
einwegglas Oct 18, 2007 at 12:12:01 (UTC)
Goto Top
super Biber. hatte gehofft, dass du schon wach bist face-wink. klappt wunderbar.

danke nochmal

gruß ewg