meinsenfdazu
Goto Top

Variable in Regedit

Hallo zusammen,

ich muss eine Reg Datei per regedit.exe importieren die eine Variable %Username% enthält. Leider wird die Variable nicht aufgelöst beim Import.

[HKEY_CURRENT_USER\Software\Adobe\Common 11.0\Media Cache]

"DatabasePath"="C:\\Adobe\\Medien Cache Datenbank\\%Username%"
"FolderPath"="C:\\Adobe\\Medien Cache Datenbank\\%Username%"

Leider ist Reg Add per Gruppenrichtlinie gesperrt so das dies also ausscheidet. Hat jemand eine Idee wie das funktionieren könnte.

Content-ID: 336055

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

Ausgedruckt am: 24.11.2024 um 18:11 Uhr

132895
132895 25.04.2017 aktualisiert um 14:36:38 Uhr
Goto Top
Einen REG_EXPAND_SZ Wert benutzen, dann werden Umgebungsvariablen beim Abfragen aufgelöst.
https://msdn.microsoft.com/de-de/library/windows/desktop/ms724884(v=vs.8 ...

Gruß
MeinSenfDazu
MeinSenfDazu 25.04.2017 um 14:50:27 Uhr
Goto Top
Hallo elchapo,

so funktioniert das leider nicht. Ich habe nur die Möglichkeit per Regedit über eine Batch den Wert zu schreiben.
132895
132895 25.04.2017 aktualisiert um 15:06:58 Uhr
Goto Top
Zitat von @MeinSenfDazu:
so funktioniert das leider nicht. Ich habe nur die Möglichkeit per Regedit über eine Batch den Wert zu schreiben.
Doch, erstelle die Werte Testweise in Regedit als REG_EXPANS_SZ, exportiere die Einträge (mit eingetragenem %username%) als *.reg und dann importierst du sie damit.

In Reg-Dateien werden keine Umgebungsvariablen aufgelöst, sie werden aber interpretiert wenn man stattdessen einen REG_EXPANS_SZ Wert anlegt!

Ansonsten ein Replace der Umgebungsvariablen in der Textdatei machen.
@echo off & setlocal ENABLEDELAYEDEXPANSION
set "regfile=D:\datei.reg"  
>"%temp%\tmp.reg" (for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" "%regfile%"') DO call set line=%%b & echo(!line!)  
reg import "%temp%\tmp.reg"  
anandax
anandax 06.07.2023 um 16:24:55 Uhr
Goto Top
Zitat von @132895:

Doch, erstelle die Werte Testweise in Regedit als REG_EXPANS_SZ, exportiere die Einträge (mit eingetragenem %username%) als *.reg und dann importierst du sie damit.

In Reg-Dateien werden keine Umgebungsvariablen aufgelöst, sie werden aber interpretiert wenn man stattdessen einen REG_EXPANS_SZ Wert anlegt!

Das funktionier leider nicht. Ich habe einen neuen Wert (REG_EXPAND_SZ) mit %username% eingetragen und exportiert. Danach Registry-Eintrag gelöscht und wieder importiert. Nach dem Import steht noch immer %username%. Jemand noch eine Idee?
7426148943
7426148943 06.07.2023 aktualisiert um 17:23:13 Uhr
Goto Top
Zitat von @anandax:
Das funktionier leider nicht. Ich habe einen neuen Wert (REG_EXPAND_SZ) mit %username% eingetragen und exportiert. Danach Registry-Eintrag gelöscht und wieder importiert. Nach dem Import steht noch immer %username%. Jemand noch eine Idee?

Doch das funktioniert. Die werden aber erst aufgelöst sobald der Key von einem Programm abfragt wird! In der Registry selbst steht immer die Variable. Willst du das nicht mach es mit reg add in einer Batch oder einem Powershell-Skript
anandax
anandax 07.07.2023 um 11:24:50 Uhr
Goto Top
Zitat von @7426148943:
Doch das funktioniert. Die werden aber erst aufgelöst sobald der Key von einem Programm abfragt wird! In der Registry selbst steht immer die Variable. Willst du das nicht mach es mit reg add in einer Batch oder einem Powershell-Skript


Du hast Recht. AutoCAD hat es entsprechend umgesetzt. Wieder etwas gelernt. Danke.
7426148943
7426148943 07.07.2023 um 11:41:15 Uhr
Goto Top
Bitte, gerne.