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-Key: 336055

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

Printed on: April 19, 2024 at 00:04 o'clock

Mitglied: 132895
132895 Apr 25, 2017 updated at 12:36:38 (UTC)
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ß
Member: MeinSenfDazu
MeinSenfDazu Apr 25, 2017 at 12:50:27 (UTC)
Goto Top
Hallo elchapo,

so funktioniert das leider nicht. Ich habe nur die Möglichkeit per Regedit über eine Batch den Wert zu schreiben.
Mitglied: 132895
132895 Apr 25, 2017 updated at 13:06:58 (UTC)
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"  
Member: anandax
anandax Jul 06, 2023 at 14:24:55 (UTC)
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?
Mitglied: 7426148943
7426148943 Jul 06, 2023 updated at 15:23:13 (UTC)
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
Member: anandax
anandax Jul 07, 2023 at 09:24:50 (UTC)
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.
Mitglied: 7426148943
7426148943 Jul 07, 2023 at 09:41:15 (UTC)
Goto Top
Bitte, gerne.