miscellaneous-scripts/4n/registry/reg-util-4n.cmd

69 lines
1.6 KiB
Batchfile

@echo off
setlocal
:ValidateArgs
if [%1] == [] goto Usage
:LocalConfig
set RegRoot=HKCU
set DeleteKeys=0
if /i [%1] == [delete] (
set DeleteKeys=1
) else (
if /i [%1] == [hklm] set RegRoot=HKLM
)
if /i [%2] == [delete] (
set DeleteKeys=1
)
@REM CLSID 65A...
@REM
:Execute
set DeviceAppName=4ndeva32.exe
set CLSID=65A59365-B7AF-460a-A733-9DB503B16EAF
set InterfaceId=D51A9C23-3C57-4cdf-B419-FB662276870A
set EventInterfaceId=37CFDA83-14C3-475E-91C4-93EB05C658B9
set LibId=3794F27B-F75E-4565-ABCB-5D57E48BF50C
set ClassName=ANDevice.ANDev
call :RegQuery "%RegRoot%\Software\Classes\CLSID\{%CLSID%}"
call :RegQuery "%RegRoot%\Software\Classes\Interface\{%InterfaceId%}"
call :RegQuery "%RegRoot%\Software\Classes\Interface\{%EventInterfaceId%}"
call :RegQuery "%RegRoot%\Software\Classes\%ClassName%"
call :RegQuery "%RegRoot%\Software\Classes\%ClassName%.1"
call :RegQuery "%RegRoot%\Software\Classes\TypeLib\{%LibId%}"
goto Cleanup
:RegQuery
@REM Technique 1: Use appropriate reg.exe for 32-bit context
set RegCmd=%SYSTEMROOT%\system32\reg.exe
if exist %SYSTEMROOT%\syswow64 set RegCmd=%SYSTEMROOT%\syswow64\reg.exe
if %DeleteKeys% == 1 (
%RegCmd% delete %1 /f
) else (
%RegCmd% query %1 /s || echo Missing key: %1
)
@REM @REM Technique 2: Use /reg:32 argument to force 32-bit registry access
@REM if %DeleteKeys% == 1 (
@REM reg delete %1 /reg:32 /f
@REM ) else (
@REM reg query %1 /reg:32 /s || echo Missing key: %1
@REM )
goto Cleanup
:Usage
echo %~n0 HIVE_ABBREVIATION [delete]
echo Examples:
echo %~n0 hkcu
echo %~n0 hkcu delete
echo %~n0 hklm
echo %~n0 hklm delete
:Cleanup
endlocal