monoffel
Goto Top

Batch - Pfad als Wert in reg add

Ich möchte einem Pfad als Wert in die Registry einfügen. (Hab Windoof XP SP3)

Ich hab nen Programm in ein Batch-skript geschrieben, welches nach einem Pfad fragt
-> set /p speicherort=Ordnerpfad:
und nach einem Passwort.
Das Passwort ist kein Problem. Den Pfad kann man eingeben und alles ist gut.
Der Pfad sieht z.B. so aus C:\programme\abc\
dann wird der Pfad in die Registry geschrieben...
-> reg add %key1% /f /v "logfile" /d %speicherort%
Bis dahin funktionierts, aber wenn man als Pfad z.B. C:\programme\neuer ordner\
nimmt, gehts nicht.
Hab schon 101 mögliichkeiten ausprobiert, aber nichts will funktionieren. Entweder wird der Schlüssel überhaupt nicht eingetragen oder sonst wie...
Fast geschafft hab ich es mit
-> set speicherort=%speicherort%:\=\\% vor dem reg add nur da sind halt " " in dem Wert und es geht nicht... und irgendwas war noch mit 2 Backshlashes aber keine Ahnung.

Ich suche halt nach einer möglichkeit wie ich den Pfad genau in dem Format -> C:\bla\bla bla bla\ <- in die registry schreiben kann.

Content-ID: 116494

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

Ausgedruckt am: 26.11.2024 um 07:11 Uhr

78632
78632 20.05.2009 um 16:08:35 Uhr
Goto Top
Lesen bildet.
77559
77559 20.05.2009 um 16:27:07 Uhr
Goto Top
Hallo monoffel,

also ich habe da keine Probleme, oder habe ich das falsch verstanden?

:: TestRegAdd.cmd :::::::::::::::::::::::::::::::::::::::::::::::::::
echo on
set Key1="HKCU\Software\MyTest"  
set speicherort="%USERPROFILE%\Test Leerzeichen"  
reg add %Key1% /f /v "logfile" /d %speicherort%  
reg Query %Key1% /S
Pause

Gruß
LotPings
Biber
Biber 20.05.2009 um 16:43:34 Uhr
Goto Top
Zitat von @monoffel:
Hab schon 101 mögliichkeiten ausprobiert, aber nichts will funktionieren.

Und ich hab schon 1 Million mal gesagt, ihr sollt nicht immer so übertreiben.

Grüße
Biber
monoffel
monoffel 20.05.2009 um 16:58:50 Uhr
Goto Top
Also gesucht hab ich schon. Ich suche schon 2 Tage lang nach einer Lösung, nicht nur auf dieser Seite...
101 Möglichkeiten hört sich nur so toll an :P ich hab so 15 Probiert... (sogar mit .reg dateien)
So und zum produktivem Vorschlag:
set speicherort="%USERPROFILE%\Test Leerzeichen\" <- geht nicht (Wert: C:\bla\Test Leerzeichen")
set speicherort="%USERPROFILE%\Test Leerzeichen" <- geht... (Wert: C:\bla\Test Leerzeichen)
naja geht im Sinne von - er schreibts richtig in die registry.
Damit es funktionier muss aber ein \ hinter den letzen Ordner.
77559
77559 20.05.2009 um 17:10:26 Uhr
Goto Top
Das \" escaped das Anführungszeichen,.
Damit das funktioniert musst du nur den letzten Backslash verdoppeln.
Diese Version tut das für dich:
:: TestRegAdd.cmd :::::::::::::::::::::::::::::::::::::::::::::::::::
echo on
set Key1="HKCU\Software\MyTest"  
set "speicherort=%USERPROFILE%\Test Leerzeichen\"  
if "%speicherort:~-1%"=="\" set "speicherort=%speicherort%\"  
reg add %Key1% /f /v "logfile" /d "%speicherort%"  
reg Query %Key1% /S
Pause

Gruß
LotPings
monoffel
monoffel 20.05.2009 um 17:36:38 Uhr
Goto Top
...Also das is ja ma echt GENIAL !!!
Ich hab mich schon fast damit abgefunden, das Programm 2 mal schreiben zu müssen nur einmal mit einem skript für leerzeichen, aber das ist echt die perfekte Lösung.

Danke!

..Hab grad noch überlegt, wie ich bei der Zusammenfassung von dem, was man eingegeben hat das letzte \ weglasse...Die unglaublich peinlich einfache Lösung:
set "speicherort=%USERPROFILE%\Test Leerzeichen\"
set speicherort2=%speicherort%
if "%speicherort:~-1%"=="\" set "speicherort=%speicherort%\"
...
echo Speicherort: %speicherort2%

Nur so um zu erklären, warum ich so lange zum antworten brauche und für die Nachwelt :D
Kriegstreiber
Kriegstreiber 21.06.2019 aktualisiert um 20:29:38 Uhr
Goto Top
Ich hänge mich mal mit rein.

Folgende reg add funktioniert:

reg add "HKCR\*\Shell\FFMPEG Video Muxer" /v "Icon" /t REG_SZ /d "%~dp0FFMPEG_Video_Muxer.exe,0" /f  
reg add "HKCR\*\Shell\FFMPEG Video Muxer\command" /ve /d "%~dp0FFMPEG_Video_Muxer.exe ""%%1""" /f  

Folgendes steht jetzt in der registry bei Daten:

E:\Mein Test\FFMPEG_Video_Muxer.exe "%1" (Zeile 2 vom Code)

Ich hätte aber dort gerne:

"E:\Mein Test\FFMPEG_Video_Muxer.exe" "%1"

Also den Pfad zum Programm auch in ".

Wenn ich den Code so anpasse:

reg add "HKCR\*\Shell\FFMPEG Video Muxer\command" /ve /d ""%~dp0FFMPEG_Video_Muxer.exe" ""%%1""" /f  

Haut er mir einen Fehler raus. Irgendwo muss bestimmt ein Escape Zeichen gesetzt werden, ich habe jetzt auch zig Möglichkeiten durch.