benni82
Goto Top

Bestimmten Inhalt in einer Datei finden per batch

Hallo zusammen,

ich hoffe auf eure kompetente Hilfe. Mehrfach stosse ich auf dieses Forum, wenn ich über diverse Suchmaschinen etwas zum Thema batch suche.

Folgender Sachverhalt:

In der Datei inhalt.ini stehen einige Zeilen Inhalte. Unter anderem gibt es eine Zeile die etwa so lautet:

Stationname=ASR9988771

bzw.

Stationname=ASR9988771A

Nun zu meinem Problem: Ich müsste per batch die datei einlesen und diese bestimmte Zeile finden. Der Teil bis zur Nummer ist immer gleich (also Stationname=ASR), die 7-stellige Zahl am Ende kann varieren. Teilweise kann am Ende auch noch ein einziger Buchstabe angehängt sein.

Gibt es eine Möglichkeit, diese Zahl in eine Variable einzulesen, um diese weiter zu verarbeiten? Ich denke, es funktioniert irgendwie mit dem find befehl, aber soviel ich mir darüber auch erlesen habe, diesen verstehe ich leider nicht face-sad

Vielleicht weiß einer von euch einen Rat.

Vielen Dank im vorraus!

Content-Key: 161621

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

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

Member: pieh-ejdsch
pieh-ejdsch Feb 26, 2011 at 02:21:31 (UTC)
Goto Top
moin Benni82,

so spät noch unterwegs?

for /f "delims=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz=" %%i in ('findstr /b /c:"Stationname=ASR" "D:\Inhalt.ini"') do call :machwas %%i  
goto :eof
:machwas
echo %1
goto :eof

Gruß Phil
Member: Benni82
Benni82 Feb 26, 2011 at 06:49:03 (UTC)
Goto Top
Hi Phil,


super, vielen dank, dass ist schon mal eine große Hilfe.
Ja, wenn man irgendwie an einer batch sitzt und probiert vergisst man manchmal die Zeit :D

Zur Lösung: Also das funktioniert schonmal sehr gut. Nur ich bräuchte das vielleicht so, dass ich alles in der Zeile nach dem ASR in eine variable bekomme, sprich wenn da auch steht Stationname=ASR9988771A, dass dann auch 9988771A ausgegeben wird, nicht nur die zahl.

Vielleicht weißt du da ja auch eine Lösung. aber vielen Dank bis hierhin schonmal!!! face-smile
Member: bastla
bastla Feb 26, 2011 at 07:51:22 (UTC)
Goto Top
Hallo Benni82!

Dann eben zB so:
for /f "tokens=1* delims==" %%i in ('findstr /b /c:"Stationname=ASR" "D:\Inhalt.ini"') do set "Station=%%j" & call :machwas  
goto :eof

:machwas
set "Name=%Station:*ASR=%"  
echo %Name%
goto :eof
Falls "ASR" variabel wäre:
set "Kennung=ASR"  
for /f "tokens=1* delims==" %%i in ('findstr /b /c:"Stationname=%Kennung%" "D:\Inhalt.ini"') do set "Station=%%j" & call :machwas  
goto :eof

:machwas
call set "Name=%%Station:*%Kennung%=%%"  
echo %Name%
goto :eof

Grüße
bastla

P.S.:
Mehrfach stosse ich auf dieses Forum, wenn ich über diverse Suchmaschinen etwas zum Thema batch suche.
... und das schon lange face-wink:
Mitglied seit: 17.04.2006
So gesehen: Willkommen zurück! face-smile