从批处理文件中,在用户安装某些东西之前,我需要验证他没有使用给定的命名空间和类名注册其他 CLSID。这可能吗 ?我的理解是,这是 ProgID。我知道 ProgID 不是必需的,并且某些 COM 对象可能会丢失,但如果它存在,我想检查它。
我可以通过 regedit 直观地做到这一点,但这显然不符合我的目的。
从批处理文件中,在用户安装某些东西之前,我需要验证他没有使用给定的命名空间和类名注册其他 CLSID。这可能吗 ?我的理解是,这是 ProgID。我知道 ProgID 不是必需的,并且某些 COM 对象可能会丢失,但如果它存在,我想检查它。
我可以通过 regedit 直观地做到这一点,但这显然不符合我的目的。
这将使用 ProgID 键遍历所有 CLSID,并检查它们是否与指定的字符串匹配。
@echo off
setlocal EnableDelayedExpansion
set "xLast="
for /F "tokens=1,2,*" %%A in ('reg query HKCR\CLSID /s /f ProgID /k /e /ve') do (
rem echo(%%C
if "%%~C" EQU "Enter ProgID to match on here" echo Found Match: !xLast!
set "xLast=%%A %%B %%C"
)
endlocal
pause