我想编写一个批处理文件来检查某个程序是否存在,如果存在,我想卸载它。这是我目前得到的结果。
@echo off
(wmic product get name| findstr /i "abc123")
虽然不多,但基本上如果它找到“abc123”,我希望它运行卸载程序。这是我目前得到的结果。
wmic product where name="abc123" call uninstall/nointeractive
我不确定如何为激活第二组代码的第一组代码设置“if true”类型的语句。
如果任何结果返回“false”,程序基本上就会跳过卸载。
如果您有任何疑问,请随时提问。谢谢!
答案1
选择任意一项:
@ECHO OFF
SETLOCAL EnableExtensions
set "_product=abc123"
rem set "_product=avg zen"
echo 'redirection' way
(wmic product get name| findstr /i /C:"%_product%")&&(
echo %_product% exists
rem uninstall here
)||(
echo %_product% no instance
)
echo 'if errorlevel' way
wmic product get name| findstr /i /C:"%_product%"
if errorlevel 1 (
echo %_product% no instance
) else (
echo %_product% exists
rem uninstall here
)
echo 'direct call' way
wmic product where "name='%_product%'" call uninstall/nointeractive
输出set "_product=abc123"
:
==> D:\bat\SU\1087355.bat
'redirection' way
abc123 no instance
'if errorlevel' way
abc123 no instance
'direct call' way
No Instance(s) Available.
输出set "_product=avg zen"
但有“直接呼叫”方式跳过:
==> D:\bat\SU\1087355.bat
'redirection' way
AVG Zen
avg zen exists
'if errorlevel' way
AVG Zen
avg zen exists