How to make a batch file execute a reg file

74.5k views Asked by At

I have the following code

@echo off
file.reg
pause

This works but when the batch file is elevated I get an error saying that it cannot find the file. does any one know what I am doing wrong.

2

There are 2 answers

0
npocmaka On BEST ANSWER
 @echo off
 rem  set __COMPAT_LAYER=RunAsInvoker  
 REGEDIT.EXE  /S  "%~dp0\file.reg"
 pause

Try this

If you are accessing locations in the registry that does not require admin privileges you can use __COMPAT_LAYER environment variable.Just execute this before using regedit:

set __COMPAT_LAYER=RunAsInvoker

that will prevent UAC pop-up if your script is not ran as administrator.

1
LS_ᴅᴇᴠ On

Probably, starting batch with elevated privileges will change starting directory to %windir%\system32 (path where cmd.exe is located).

Use:

"%~dp0\file.reg"

to always execute file.reg located in same directory as batch file.

Also consider using REG command, as it allows you to perform console operations on registry (check REG /?).