我有一個在安裝程序中由 InnoSetup 創建的注冊表項。該鍵包含兩個資訊:
- 顯示名稱
- 安靜的卸載字串
我不知道我的 Key 的全名是什么。我擁有的唯一資訊是路徑:
“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall”
以及鍵“DisplayName”(MyApplicationName)的值。
我需要做的是檢索“QuietUninstallString”值,該值應該是路徑末尾帶有“/SILENT”的路徑。
現在我寫了這個批處理檔案:
@echo off
setlocal enableextensions disabledelayedexpansion
set tosearch=%1
for /f "tokens=3" %%a in ('
REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall /s /f %tosearch% ^| findstr "QuietUninstallString"
') do set "value=%%a"
echo %value%
我這樣稱呼它:
test.bat 我的應用程式名稱
問題是,當我運行這個檔案時,它回傳:
"C:\程式
雖然我希望將其退回:
"C:\Program Files (x86)\MyFolder\MyApplicationName\unins000.exe" /SILENT
有沒有更好的方法來使用我的批處理檔案檢索資訊?
uj5u.com熱心網友回復:
根據您發布的內容,您應該能夠將整個代碼替換為:
@For /F "EOL= Delims=" %%G In ('%SystemRoot%\System32\reg.exe Query
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /S /F
"%~1" /E /D 2^>NUL') Do @For /F "Tokens=2,*" %%H In (
'%SystemRoot%\System32\reg.exe Query "%%G" /V "QuietUninstallstring" 2^>NUL'
) Do @Echo(%%I
或者,如果打算實際運行卸載字串:
@For /F "EOL= Delims=" %%G In ('%SystemRoot%\System32\reg.exe Query
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /S /F
"%~1" /E /D 2^>NUL') Do @For /F "Tokens=2,*" %%H In (
'%SystemRoot%\System32\reg.exe Query "%%G" /V "QuietUninstallstring" 2^>NUL'
) Do @Start "" %%I
uj5u.com熱心網友回復:
使用 tokens=2,* 并設定“value=%%b”。查看 /? 從檔案提示
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/478120.html
