snowdream
Goto Top

In Textfile Zeichenkette suchen und x Stellen danach in Variable schreiben

Hallo Zusammen

ich möchte in einem Textfile nach der Zeichenkette "Writing Registry: [SOFTWARE\ABC GmbH\Version], Version =" suchen und x Stellen nach der gefundenen Zeichenkette in eine Variable schreiben.
Funktioniert auch soweit, allerdings wird irgendeine Zeile der Quelle.txt ausgegeben. Die Suchfunktion hat mich leider nicht ans Ziel geführt. Muss ich eventuell noch was maskieren?

hier mein Ansatz:

@echo off &setlocal

for /f "delims=" %%i in ('findstr /R "Writing Registry: [SOFTWARE\ABC GmbH\Version], Version =" c:\Quelle.txt^|findstr') do @set "ln=%%i"
@set "Version=%ln:~10,100%"
ECHO %Version%

PAUSE

Content-Key: 172583

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

Printed on: April 25, 2024 at 15:04 o'clock

Mitglied: 60730
60730 Sep 05, 2011 at 10:40:22 (UTC)
Goto Top
moin,

hier mein Ansatz:
@echo off &setlocal

  • ärgssssssss.....


Ohne dieses Echo off wirst du ni herausfinden, was und warum es nicht klappt.
  • und ohne die "quelle" zu kennen - quälen wir uns nur rum und irgendwann quillt der Fred über.


Pause
Member: Skyemugen
Skyemugen Sep 05, 2011 at 10:44:34 (UTC)
Goto Top
Aloha,

  • was soll das zweite findstr bewirken?
  • warum nutzt du nicht einfach delims== zzgl. tokens, versteht sich , wenn du (wie ich annehme) alles nach Version = haben willst?

@t-mo, bollocks auch mit echo off gibt es eine klare Fehlermeldung face-wink FINDSTR: Syntaxfehler

greetz André
Member: pieh-ejdsch
pieh-ejdsch Sep 05, 2011 at 10:55:49 (UTC)
Goto Top
moin,

ich würde auf die Option /r verzichten und Findstr mit Find ersetzen.

Gruß Phil
Member: Skyemugen
Skyemugen Sep 05, 2011 at 11:01:35 (UTC)
Goto Top
Aloha Phil,

läuft auch mit /R (er kann auch /c: nehmen) aber da liegt auch nicht das Problem face-wink, denn ich bezweifle, dass

allerdings wird irgendeine Zeile der Quelle.txt ausgegeben
mit seinem geposteten code zusammenpasst ...

greetz André
Member: snowdream
snowdream Sep 05, 2011 at 11:06:24 (UTC)
Goto Top
Danke Phil, so läuft's wunderbar!

@echo off &setlocal

for /f "delims=" %%i in ('find "Writing Registry: [SOFTWARE\ABC GmbH\Version], Version =" c:\Quelle.txt') do @set "ln=%%i"
@set "Version=%ln:~10,100%"
ECHO %Version%

PAUSE
Member: pieh-ejdsch
pieh-ejdsch Sep 05, 2011 at 11:09:55 (UTC)
Goto Top
moin Sky,

nur das die Eckigen Klammern den Suchausdruck bei der Option /r nicht [edit] nur [/edit] finden werden, die E-Klammern bezeichnen eine Zeichenklasse. demnach wird nur ein Zeichen statt der Kompletten Eckigen Klammer gesucht und gefunden. ändere 1 Zeichen in der Klammer und es wird trozdem gefunden.

Gruß Phil