2013-12-13 3 views
5

ich eine reg-Datei den folgenden Code ausführen machenWie eine Batch-Datei

@echo off 
file.reg 
pause 

Dies funktioniert aber, wenn die Batch-Datei erhöht ist, tritt ein Fehler zu sagen, dass es die Datei nicht finden kann. Weiß jemand, was ich falsch mache?

Antwort

9
@echo off 
rem set __COMPAT_LAYER=RunAsInvoker 
REGEDIT.EXE /S "%~dp0\file.reg" 
pause 

Versuchen Sie, diese

Wenn Sie Standorte in der Registry zugreifen, die Sie __COMPAT_LAYER Umgebung variable.Just diese verwenden können keine Admin-Rechte erforderlich ausführen, bevor regedit:

set __COMPAT_LAYER=RunAsInvoker 

das wird verhindern Sie das UAC-Popup, wenn Ihr Skript nicht als Administrator ausgeführt wird.

6

Wahrscheinlich wird das Starten des Stapels mit erhöhten Rechten das Anfangsverzeichnis auf %windir%\system32 (Pfad, in dem sich cmd.exe befindet) ändern.

Verwendung:

"%~dp0\file.reg" 

immer file.reg in demselben Verzeichnis wie Batch-Datei befindet auszuführen.

Verwenden Sie auch den Befehl REG, mit dem Sie Konsolenoperationen in der Registrierung durchführen können (siehe REG /?).

+0

Wenn es darum geht, eine '.reg' Datei zu laden, bevorzuge ich' REGEDIT/S', um das Popup zu übertreffen.'REG' ist eine ziemlich gute Idee, wenn Sie keine Administratorrechte haben, da es die Berechtigungen pro Registrierungsschlüssel überprüft , ist aber leider nicht auf allen Windows-Systemen verfügbar (insbesondere Home-Editionen). Aber +1 – npocmaka

Verwandte Themen