배치 스크립트 및 발견된 키의 출력 값 가져오기

배치 스크립트 및 발견된 키의 출력 값 가져오기

CMD 프롬프트에서는 모두 잘 작동하지만 실행하려면 bat 파일을 넣어야 하지만 Reg Query cmd의 출력을 가져올 수 없으며 그로부터 다른 쿼리를 실행할 수 없습니다.

내가 찾고 있는 것은 앱 ID이고 변경될 수 있으므로 나머지 키를 찾아야 합니다. 명령 프롬프트에서 다음을 수행하면 필요한 정보를 얻을 수 있습니다.

REG Query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall /F "APP_NAME" /E /S

다음과 같은 필요한 키를 제공합니다.

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{398E49A0-84CA-43B5-A926-42EF68619E91}

여기에서 다른 명령을 실행하여 제거 명령을 가져올 수 있습니다.

REG Query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{398E49A0-84CA-43B5-A926-42EF68619E91} /V "UninstallString"

나는 사이트에서 본 것을 시도해 보았지만 for \f token....건너뛰기를 사용해도 첫 번째 문자열만 제공하지 않습니다. 또한 나는 그것을 어떻게든 할당할 수 없었습니다. 나는 다음과 같은 것이 필요합니다 :

set Full_Key = reg query...
set Uninstall_CMD = Full_Key "/V Uninstallstring"

일단 발견되면 항목이 1개만 있을 것이라는 것을 알고 있습니다.

답변1

많은 숙제를 하고 오래된 책들을 뒤져본 후에 나는 이 일을 해냈습니다. 누군가가 네트워크에서 필요한 것과 동일한 앱을 제거해야 하거나 시작점이 필요한 경우 여기에 코드를 게시하세요.

제가 해결해야 했던 주요 문제는 일반적인 제거 파일이 없기 때문에 앱 ID를 찾은 다음 레지스트리에서 제거 문자열을 가져오는 것이었습니다.

보기에 가장 좋은 코드는 아닐 수도 있지만 작동합니다.

rem First Check To See If The App Is Even Installed, In My Case, It May Not Be A Dell Box, Or We Already Uninstalled

REG Query %Computer%HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /F "Dell SupportAssist" /E /D /S > NUL
Rem If We have Error, It Is Not There, Bail Out
if errorlevel 1 exit
rem The Key Is Found, So It Must Be Installed, So Get The Full Key, By Searching For The App Name
FOR /F "tokens=*" %%A IN ('REG Query %Computer%HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /F "Dell SupportAssist" /E /D /S 2^>NUL ^| FINDSTR /R /C:"HKEY_"') DO (
rem Now We Have The Full Key From Above, Grab The Uninstall Command And Run It
FOR /F "tokens=2*" %%B IN ('REG Query "%Computer%%%~A" /F UninstallString /V /E ^| FIND /I " UninstallString "') DO %%C% /qn

)

관련 정보