「使用可能なインスタンスがありません」というメッセージを表示したくない。
for /f "usebackq skip=1" %%r in (`wmic process where Name^="CALC.exe" get Processid ^| findstr /r /v "^$"`) do SET procid=%%~r
リダイレクト演算子を使用してエラーを捨てることができます 2> nul
NULにリダイレクト(エラーを非表示)
command 2> nul
ノート:
>
使用してエスケープする必要があります^
。
null
デバイスは、それに書き込まれたすべてのデータを破棄し、特殊なファイルですが、書き込み操作が成功したことを報告しています。
for
コマンドは次のようになります。
`wmic process where Name^="CALC.exe" get Processid 2^> nul ^| findstr /r /v "^$"`
また、calc.exeのインスタンスごとにディスプレイを1行下にスクロールさせたくない
wmic process where Name="CALC.exe" call terminate >> NUL
リダイレクト演算子を使用して、余分な空白行を捨てることができます > NUL 2>&1
「終了」コマンドは次のようになります。
wmic process where Name="CALC.exe" call terminate >NUL 2>&1
すべてを一緒に入れて
変更されたバッチファイル:
@echo off
setlocal EnableDelayedExpansion
for /f "usebackq skip=1" %%r in (`wmic process where Name^="CALC.exe" get Processid 2^> nul ^| findstr /r /v "^$"`) do SET procid=%%~r
IF [!procid!] NEQ [] (
wmic process where Name="CALC.exe" call terminate >NUL 2>&1
) ELSE (
GOTO :break
)
:break
SET procid=
endlocal
参考文献