[英]How to uninstall a program using a version-independent name in WMIC
我正在創建一個批處理來自動執行 Java 卸載:
wmic product where name="Java 8 Update 321 (64-bit)" call uninstall /nointeractive
但 Oracle 在 WMIC 中將應用重命名為 Java 8 Update 321 (64 位)。 比如以后Oracle會發布新的322版本,我的batch會因為版本不同而停止工作。 Oracle 不僅每次更新都會更改名稱,還會更改 ID,如 {26A24AE4-039D-4CA4-87B4-2F64180 321 F0}。
我已經嘗試使用像這樣使用 winget 的替代方法:
winget install "Oracle.JavaRuntimeEnvironment"
有效
winget uninstall "Oracle.JavaRuntimeEnvironment"
不起作用,因為 ID 不同,它是 {26A24AE4-039D-4CA4-87B4-2F64180 321 F0},這與版本號有關。
有沒有辦法批量卸載無版本號?
for /f "delims=" %%b in ('wmic product get description^|find "Java" ') do set "javaversion=%%b"
echo ready to delete "%javaversion%"
然后wmic product where name="%javaversion%" call un...
(這只是設置一個環境變量並顯示它)
If you're feeling brave, try
for /f "delims=" %%b in ('wmic product get description^|find "Java" ') do ECHO wmic product where name="%%b" call uninstall /nointeractive
並刪除echo
關鍵字以實際執行卸載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.