本帖最后由 小智BAT 于 2014-10-8 09:00 编辑
我想通过注册表查找
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders中的字符串值名称是否包含WFOActive
并输出该完整的字符串值名称,其中字符串值名称有多个包含“WFOActive”
如有多个字符串值名称如下:
C:\Program Files (x86)\WFOActive\V4用户认证\
E:\V5认证\WFOActive\V4用户认证\
E:\V5认证\WFOActive\
C:\Program Files (x86)\WFOActive\
我需要输出“C:\Program Files (x86)\WFOActive\”和“E:\V5认证\WFOActive\”上一级目录就好,其他不要输出。如何解决?
如果没有找到则提示没有安装该软件。
注意:如果安装在d盘,其字符串值名称会改为d盘的路径名称。
terse大神给出了输出一个的方法:- @echo off&setlocal enabledelayedexpansion
- set "s=V4用户认证"
- set "reg=reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders"
- set "find=findstr/i \\%s%\\.*REG_SZ
- for /f "tokens=*" %%i in ('%reg% 2^>nul^|%find%') do (
- set "var=%%i"
- set var=!var:\%s%\=\%s%^
- !
- for /f "delims=" %%a in ("!var!") do (
- if /i "%%~nxa" == "%s%" (
- if not defined a (set a=%%~dpa)else set b=%%~dpa
- )
- )
- )
- if not defined a (
- echo,没有%s%目录
- )else echo %a%&if defined b echo %b%
- pause
复制代码 感谢大神帮忙
感谢批处理论坛 |