
36539
07.11.2008, aktualisiert um 14:52:33 Uhr
Text (String) aus sich dynamisch verändernden Pfaden ausschneiden
Hallo,
ich erzeuge in einer Batch (über eine for-Schleife eine Variable "%key%" die inhaltlich dynamisch veränderliche Registry-Werte enthält.
Aus diesen Werten wird im nächsten Schritt (jeweils die 2. Zeile unter dem %key%-Wert ) der Installations-Hauptpfad der Anwendungen generiert.
Hier die aufgelösten Registry-Werte [1] der Variablen %key%
Die Variable %key% enthält also ausschließlich die Pfade aus den Zeilen mit "HKEY_LOCAL_MACHINE..."
Ich muss aus %key% exakt immer den Teil nach \App Paths\.... ausschneiden (ohne das letzte Anführungszeichen) und an eine weitere Variable übergeben.
Wie mache ich das am besten?
Die Zeilen mit dem *** am Ende spiegeln noch einen Batch-Fehler [2] für die aus dem %key%-Wert ermittelte 2. Zeile wieder.
Die Frage gilt dennoch auch für diese %key%-Werte, denen deren Ermittlung in der Batch funktioniert und ist korrekt.
Das Ganze muss sowohl unter XP als auch Vista funktionieren!
Wenn sich jemand fragen sollte, warum bekommt der ausschneiden nicht hin - der Hauptteil des Batch-Code-Schnippsel [2] stammt nicht von mir.
Wenn jemand den Bachtcode [2] versteht wäre ich dankbar für eine Problemlösung damit die Pfade (in jeweils Zeile 2) für die in [1] mit *** gekennzeichneten Zeilen korrekt ermittelt werden.
Übrigens sind die Fehler bei XP und Vista unterschiedlich. Z.Bsp. müsste Vista_key-Pfade.txt mit den gleichen Zeilen für Acrobat Reader wie bei XP_key-Pfade.txt beginnen.
[1]
XP_key-Pfade.txt
Vista_key-Pfade.txt
[2]
key-cmd.txt
Jetzt bin ich mal gespannt.
- Bestimmt keine einfache Sache
Gruß
onegasee59
ich erzeuge in einer Batch (über eine for-Schleife eine Variable "%key%" die inhaltlich dynamisch veränderliche Registry-Werte enthält.
Aus diesen Werten wird im nächsten Schritt (jeweils die 2. Zeile unter dem %key%-Wert ) der Installations-Hauptpfad der Anwendungen generiert.
Hier die aufgelösten Registry-Werte [1] der Variablen %key%
Die Variable %key% enthält also ausschließlich die Pfade aus den Zeilen mit "HKEY_LOCAL_MACHINE..."
Ich muss aus %key% exakt immer den Teil nach \App Paths\.... ausschneiden (ohne das letzte Anführungszeichen) und an eine weitere Variable übergeben.
Wie mache ich das am besten?
Die Zeilen mit dem *** am Ende spiegeln noch einen Batch-Fehler [2] für die aus dem %key%-Wert ermittelte 2. Zeile wieder.
Die Frage gilt dennoch auch für diese %key%-Werte, denen deren Ermittlung in der Batch funktioniert und ist korrekt.
Das Ganze muss sowohl unter XP als auch Vista funktionieren!
Wenn sich jemand fragen sollte, warum bekommt der ausschneiden nicht hin - der Hauptteil des Batch-Code-Schnippsel [2] stammt nicht von mir.
Wenn jemand den Bachtcode [2] versteht wäre ich dankbar für eine Problemlösung damit die Pfade (in jeweils Zeile 2) für die in [1] mit *** gekennzeichneten Zeilen korrekt ermittelt werden.
Übrigens sind die Fehler bei XP und Vista unterschiedlich. Z.Bsp. müsste Vista_key-Pfade.txt mit den gleichen Zeilen für Acrobat Reader wie bei XP_key-Pfade.txt beginnen.
[1]
XP_key-Pfade.txt
Vista_key-Pfade.txt
[2]
key-cmd.txt
Jetzt bin ich mal gespannt.
Gruß
onegasee59
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 101249
Url: https://administrator.de/forum/text-string-aus-sich-dynamisch-veraendernden-pfaden-ausschneiden-101249.html
Ausgedruckt am: 09.04.2025 um 15:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo onegasee59!
So ganz klar ist mir das gewünschte Endergebnis zwar noch nicht, aber zumindest für
Grüße
bastla
So ganz klar ist mir das gewünschte Endergebnis zwar noch nicht, aber zumindest für
Ich muss aus %key% exakt immer den Teil nach \App Paths\.... ausschneiden (ohne das letzte Anführungszeichen) und an eine weitere Variable übergeben.
hätte ich folgenden Vorschlag:@echo off & setlocal
set "Pfade=D:\XP_Key-Pfade.txt"
set "abc=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths"
for /f "delims=" %%i in ('findstr /i /c:"%abc%" "%Pfade%"') do set "Pfad=%%i" & call :ProcessFile "%%~nxi
goto :eof
:ProcessFile
set "Variable=%~1"
echo %Pfad% --^> %Variable%
goto :eof
bastla
Hallo onegasee59,
Das Problem liegt in der unterschiedlichen Ausgabe der Ergebnisse von reg.exe bei XP und Vista und damit einen allgemeingültigen Code zu schreiben. Das versuchte der Codeersteller mit
Tausche diese Zeile gegen nachfolgende aus und damit ist zumindest dieses Kalb vom Tisch.
cu paulepank
Wenn jemand den Bachtcode [2] versteht wäre ich dankbar für eine Problemlösung damit die Pfade (in jeweils Zeile 2) für die in [1] mit * gekennzeichneten Zeilen korrekt ermittelt werden.Übrigens sind die Fehler bei XP und Vista unterschiedlich. Z.Bsp. müsste Vista_key-Pfade.txt mit den gleichen Zeilen für Acrobat Reader wie bei XP_key-Pfade.txt beginnen.
Das Problem liegt in der unterschiedlichen Ausgabe der Ergebnisse von reg.exe bei XP und Vista und damit einen allgemeingültigen Code zu schreiben. Das versuchte der Codeersteller mit
for /f "skip=1 tokens=*" %%a in ('reg query %abc% ^|find "\"') do call :parse "%%a" zu lösen. Da hat er aber leider nicht alles beachtet und getestet.
Tausche diese Zeile gegen nachfolgende aus und damit ist zumindest dieses Kalb vom Tisch.
for /f "tokens=*" %%a in ('reg query %abc% ^|findstr /r "\\.*\."') do call :parse "%%a"
cu paulepank
kommt gleich
unabhängig davon, wie groß t bei t=gleich ist
Ergibt doch noch Fehler:
hab ich auch nicht behauptet, daß das Script fehlerfrei wäre.
aus meinem Beitrag von oben ist lediglich rauszulesen, daß die Unterschlagung des ersten Programms - in deinem Fall Acrobat - bei Vista behoben wurde.
Für alles andere habe ich keine Zeit. Deshalb auch nur das Kalb und nicht die Kuh
cu paulepank
EDIT: das scheint eine Marotte von dir zu sein, deine eigenen Beiträge zig-mal komplett zu verändern.
Da ist es wohl besser nächstes Mal ein Vollzitat zu bringen