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.
@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.
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 /?
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With