
【已解決】批處理怎么讀取注冊表字符串值名稱并只取兩個不同的輸出最后由 小智BAT 于 -10-8 09:00我想通過注冊表查找HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInstallerFolders中的字符串值名稱是否包含WFOActive并輸出該完整的字符串值名稱,其中字符串值名稱有多個包含“WFOActive”如有多個字符串值名稱如下:C:Program Files (x86)WFOActiveV4用戶認證E:V5認證WFOActiveV4用戶認證E:V5認證WFOActiveC:Program Files (x86)WFOActive我需要輸出“C:Program Files (x86)WFOActive”和“E:V5認證WFOActive”上一級目錄就好,其他不要輸出。如何解決?如果沒有找到則提示沒有安裝該軟件。注意:如果安裝在d盤,其字符串值名稱會改為d盤的路徑名稱。terse大神給出了輸出一個的方法:
感謝大神幫忙感謝批處理論壇nclick="copycode($('code0'));">復制代碼
- @echo off&setlocal enabledelayedexpansion
- set s=V4用戶認證
- set reg=reg query HKLMSOFTWAREMicrosoftWindowsCurrentVersionInstallerFolders
- 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

