2014-04-23 7 views
0

설치된 소프트웨어의 설치 위치를 쿼리하려고합니다. 그것의 각각의 새로운 버전이 패턴 레지스트리에서 다음 그것의 자신의 키를 생성합니다배치 파일을 사용하여 레지스트리 키를 열거 함

HKLM\Software\MySoftware\<VERSION> 

예 :

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\MySoftware\0.2.0] 
"InstallDir"="C:\\Program Files\\MySoftware" 

가 어떻게 컴퓨터에 설치된 최신 버전의 InstallDir 조회 할 수 있습니다?

+0

그리고 버전은 어떻게 보입니까? 일반 번호? 점이 있습니까, 밑줄? – npocmaka

+0

지금까지 숫자가 0.1.0과 0.2.0 만 있습니다. – idleberg

답변

0
@echo off 
setlocal enableDelayedExpansion 
regedit /e /s HKLM\Software\MySoftware C:\export.txt 
set version_candidate=000 

for /f "tokens=4,5,6 delims=\." %%a in ('type C:\export.txt ^|findstr /r "[0-9].[0-9].[0-9]"') do (
    if %%a%%b%%c gtr !version_candidate! set version_candidate=%%a%%b%%c 

) 

set version=%version_candidate:~0,1%.%version_candidate:~1,1%.%version_candidate:~2,1% 
regedit /e /s HKLM\Software\MySoftware\version C:\export2.txt 

for /f "tokens=2 delims==" %%a do ('type C:\export2.txt ^|find /i "InstallDir"') do (
    set i_dir=%%a 
) 
echo %i_dir% 
endlocal 

레지스트리 항목이 어떻게 보이는지 알 수 없기 때문에 추측 해보십시오.

관련 문제