dpole86
Goto Top

Hilfe zu findstr bei win xp

Hallo zusammen

Ich habe hier ein kleines Problem wo ich nicht weiterkomme.

Ich versuche die Version des Installierten Mozilla Programms in einer For-Schleife auszulesen.

Mein code sieht bisher so aus:

echo on

set "RegKey=HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox"


for /f "tokens=3" %%a in ('reg query "%RegKey%" /s ^| findstr /i /r /C:"^ * Description"') do (
set "Moz-Version=%%a"
)

echo >> C:\FTP\%Moz-Version%.txt

pause

Leider bekomme ich nur das 1ste Wort aus der Registry nicht den kompletten key.
Ich bekomme somit nur: Mozilla.txt
der Pfad allerdings lautet Mozilla Firefox 25.0 (x86')

Wie kriege ich es hin, dass ich die komplette Zeile angezeigt bekomme?

Danke und Grüße

D_pole86

Content-Key: 221867

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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: colinardo
colinardo 13.11.2013 aktualisiert um 09:49:44 Uhr
Goto Top
Hallo D_pole86,
guckst du hier
for /f "tokens=3*" %%a in ('reg query "%RegKey%" /s ^| findstr /i /r /C:"^ * Description"') do (  
  set "Moz-Version=%%a %%b"  
)
Grüße Uwe
Mitglied: Dpole86
Dpole86 13.11.2013 um 10:11:51 Uhr
Goto Top
Zitat von @colinardo:
Hallo D_pole86,
guckst du hier
> for /f "tokens=3*" %%a in ('reg query "%RegKey%" /s ^| findstr /i /r /C:"^ *  
> Description"') do (  
>   set "Moz-Version=%%a %%b"  
> )
> 
Grüße Uwe


Hi Uwe face-smile

Danke für deine schnelle Antwort.

Irgendwie funktioniert der Code aber nicht?

ich bekomme nun als ausgabe folgendes:

C:\Documents and Settings\ADMRD\Desktop>echo Firefox 25.0 (x86 de).txt 1>>C:\FTP\Mozilla

Er macht mir also eine Datei namens Mozilla mit dem inhalt "Firefox 25.0 (x86 de).txt"
Die Ausgabe lautet bei mir echo >> C:\FTP\%Moz-Version%.txt

Wo ist mein Fehler ?

Grüße und Danke
D_pole86
Mitglied: colinardo
colinardo 13.11.2013 aktualisiert um 10:17:33 Uhr
Goto Top
du musst die Ausgabe-Pfad wegen den Leerzeichen im Namen in Anführungszeichen setzen
echo >>"C:\FTP\%Moz-Version%.txt"  
Grüße Uwe
Mitglied: Dpole86
Dpole86 13.11.2013 um 10:26:50 Uhr
Goto Top
Zitat von @colinardo:
du musst die Ausgabe-Pfad wegen den Leerzeichen im Namen in Anführungszeichen setzen
> echo >>"C:\FTP\%Moz-Version%.txt"  
> 
Grüße Uwe


Hi Danke :D

Kurz zum Verständnis:

mit leerzeichen im Namen meinst du die "%%a %%b" ?
Warum benutzt man in dem Fall nur 2 Variablen? kann ich das auf eine x-beliebige länge an text nutzen?
Was sagt man mit dem Tokens=3* aus? also der Stern gibt doch eine Schleife an oder? heist das ich lese den "Token=3" solange aus bis ich das Ende erreicht habe?

Sorry für die Fragen aber es interressiert mich wirklich sehr :D

Grüße Roman
Mitglied: colinardo
colinardo 13.11.2013 aktualisiert um 10:39:14 Uhr
Goto Top
mit leerzeichen im Namen meinst du die "%%a %%b" ?
ja, ich meine damit die Leerzeichen in dem Namen den du aus der Registry ausliest, wenn du diesen in einem Pfad nutzen willst und der Name eben Leerzeichen beinhaltet muss man den Pfad immer mit Anführungszeichen einschließen!

Also mit dem "tokens=3*" sagst du das er der Variablen %%a den dritten Split-Part zuweisen soll und der Variablen %%b den ganzen Rest der Zeile. Du könntest dies auch so schreiben: "tokens=3,*".

Ein weiteres Beispiel:
Wir haben folgenden String:
Hallo mein Name ist Max und mein Nachname Mustermann
Bei "tokens=1-3,*" sähe die Verteilung folgendermaßen aus:
  • %%a = Hallo
  • %%b = mein
  • %%c = Name
  • %%d = ist Max und mein Nachname Mustermann

Hoffe das war verständlich ausgedrückt.

Grüße Uwe
Mitglied: Dpole86
Dpole86 13.11.2013 um 11:09:16 Uhr
Goto Top
Zitat von @colinardo:
> mit leerzeichen im Namen meinst du die "%%a %%b" ?
ja, ich meine damit die Leerzeichen in dem Namen den du aus der Registry ausliest, wenn du diesen in einem Pfad nutzen willst und
der Name eben Leerzeichen beinhaltet muss man den Pfad immer mit Anführungszeichen einschließen!

Also mit dem "tokens=3*" sagst du das er der Variablen %%a den dritten Split-Part zuweisen soll und der
Variablen %%b den ganzen Rest der Zeile. Du könntest dies auch so schreiben: "tokens=3,*".

Ein weiteres Beispiel:
Wir haben folgenden String:
> Hallo mein Name ist Max und mein Nachname Mustermann
> 
Bei "tokens=1-3,*" sähe die Verteilung folgendermaßen aus:
  • %%a = Hallo
  • %%b = mein
  • %%c = Name
  • %%d = ist Max und mein Nachname Mustermann

Hoffe das war verständlich ausgedrückt.

Grüße Uwe


Perfekt :D ich danke dir vielmals :D