如何在WMIC中使用与版本无关的名称卸载程序



我正在创建一个批次来自动卸载Java:

wmic product where name="Java 8 Update 321 (64-bit)" call uninstall /nointeractive

但Oracle将WMIC中的应用程序重命名为Java 8 Update321(64位(。例如,在未来Oracle将发布新版本322,由于版本不同,我的批处理将停止工作。Oracle不仅会在每次更新时更改名称,还会更改ID,如{26A24AE4-039D-4CA4-87B4-2F64180321F0}。

我已经尝试过使用这样的翼子板的替代方案:

winget install "Oracle.JavaRuntimeEnvironment"作品

winget uninstall "Oracle.JavaRuntimeEnvironment"不起作用,因为ID不同,即{26A24AE4-039D-4CA4-87B4-2F64180321F0},这与版本号有关。

有没有一种方法可以在没有版本号的情况下批量卸载?

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

并移除CCD_ 4关键字以实际执行卸载。

最新更新