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-ID: 172583

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

Ausgedruckt am: 26.11.2024 um 07:11 Uhr

60730
60730 05.09.2011 um 12:40:22 Uhr
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
Skyemugen
Skyemugen 05.09.2011 um 12:44:34 Uhr
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é
pieh-ejdsch
pieh-ejdsch 05.09.2011 um 12:55:49 Uhr
Goto Top
moin,

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

Gruß Phil
Skyemugen
Skyemugen 05.09.2011 um 13:01:35 Uhr
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é
snowdream
snowdream 05.09.2011 um 13:06:24 Uhr
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
pieh-ejdsch
pieh-ejdsch 05.09.2011 um 13:09:55 Uhr
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