簡體   English   中英

如何在 WMIC 中使用與版本無關的名稱卸載程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM