CODE: [Copy to clipboard]
@Echo OFF
::
:: BatName: QuerySoftRegKey.bat
:: Version: 0.1
:: Purpose: 查询软件在注册表各Software项中的位置
::
:: Usage: QuerySoftRegKey softName [key]
::
:: softName 要查询的软件名
:: key 要查询的值名(可选)
::
:: example: QuerySoftRegKey winrar
:: QuerySoftRegKey winrar "C%%Program Files%WinRAR"
::
::
:: Code by SpikeKnox 2007.01.31
::
rem Show help
If [%1]==[/?] Call :Help && Goto :EOF
SetLocal ENABLEDELAYEDEXPANSION
If [%1]==[] Call :Help && Goto :EOF
Set softName=%1
Set "softName=!softName:"=%!
Set softName="!softName!"
If NOT [%2]==[] (
Set "key=%2"
Set "key=!key:"=%!
Set key="!key!"
)
For /f "delims=☆" %%i IN ('^(reg query HKCU\Software /k /f %softName% ^&^& reg query HKLM\Software /k /f %softName%^) ^| find "HKEY_"') DO (
If [!key!]==[] (
rem 只查询软件名
Echo %%i
Call :OpenReg "%%i"
) Else (
rem 只查询软件名和具体的值名
Set item="%%i"
for /f "delims=☆" %%I IN ('reg query !item! /s /f !key! ^| find "HKEY_"') DO Call :OpenReg "%%I"
reg query !item! /s /f !key! | find !key!
)
)
Goto :EOF
:OpenReg
rem %1 要定位的路径(可选,为空时将regedit定位到根目录)
If NOT [%1]==[] (
Set tag=我的电脑\%1
Set "tag=!tag:"=!"
rem 缩写路径转换
Set "tag=!tag:HKCR\=HKEY_CLASSES_ROOT\!"
Set "tag=!tag:HKCU\=HKEY_CURRENT_USER\!"
Set "tag=!tag:HKLM\=HKEY_LOCAL_MACHINE\!"
Set "tag=!tag:HKU\=HKEY_USERS\!"
Set "tag=!tag:HKCC\=HKEY_CURRENT_CONFIG\!"
Set tag="!tag!"
) Else (
Set "tag=我的电脑"
)
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit /v LastKey /d %tag% /f >NUL
Start regedit
Goto :EOF
:Help
Type "%~f0" | findstr "^::"
Goto :EOF