プログラムが存在するかどうかを確認するバッチファイルを作成しようとしています。存在する場合は、アンインストールしてもらいたいと思います。これは私がこれまでに持っているものです。
@echo off
(wmic product get name| findstr /i "abc123")
それほど多くはありませんが、基本的に「abc123」が見つかった場合は、アンインストールを実行して実行したいと思います。これは私がこれまでに持っているものです。
wmic product where name="abc123" call uninstall/nointeractive
2番目のコードセットをアクティブ化する最初のコードセットに「iftrue」タイプのステートメントを設定する方法がわかりません。
'false'として返されるものはすべて、プログラムは基本的にアンインストールをスキップします。
ご不明な点がございましたら、お気軽にお問い合わせください。ありがとう!
いずれかを選択してください:
方法を読む FINDSTR
はERRORLEVEL
を設定します
@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"
の出力ですが、 'direct call' wayはスキップされます:
==> D:\bat\SU\1087355.bat
'redirection' way
AVG Zen
avg zen exists
'if errorlevel' way
AVG Zen
avg zen exists