Wie wird der WMIC-Befehl "Keine Instanz gefunden" im Batch behandelt?

1

In einem Batch möchte ich alle Instanzen eines Prozesses beenden. Ich habe versucht mit:

@echo off
setlocal EnableDelayedExpansion
for /f "usebackq skip=1" %%r in (`wmic process where Name^="CALC.exe"  get Processid ^| findstr /r /v "^$"`) do SET procid=%%~r
IF [!procid!] NEQ [] (
  wmic process where Name="CALC.exe" call terminate >> NUL
) ELSE (
  GOTO :break
)
:break
SET procid=
endlocal

Wenn jedoch keine Instanz von calc.exe vorhanden ist, soll die Meldung "Keine Instanz (en) verfügbar" nicht angezeigt werden. Außerdem möchte ich nicht, dass die Anzeige pro Instanz von calc.exe eine Zeile nach unten rollt

Wie geht das ??

durin
quelle

Antworten:

0

Ich möchte nicht, dass "Keine Instanz (en) verfügbar" angezeigt wird.

for /f "usebackq skip=1" %%r in (`wmic process where Name^="CALC.exe" get Processid ^| findstr /r /v "^$"`) do SET procid=%%~r

Sie können die Fehler mit dem Umleitungsoperator beseitigen 2> nul

Weiterleiten an NUL (Fehler ausblenden)

command 2> nul

Anmerkungen:

  • Das >muss mit entkommen werden ^.
  • Das nullGerät ist eine spezielle Datei, die alle darauf geschriebenen Daten verwirft, aber meldet, dass der Schreibvorgang erfolgreich war.

Der forBefehl wird:

`wmic process where Name^="CALC.exe" get Processid 2^> nul ^| findstr /r /v "^$"`

Außerdem möchte ich nicht, dass die Anzeige pro Instanz von calc.exe eine Zeile nach unten rollt

 wmic process where Name="CALC.exe" call terminate >> NUL

Sie können die zusätzlichen Leerzeilen mit dem Umleitungsoperator wegwerfen > NUL 2>&1

Der Befehl "Beenden" lautet:

wmic process where Name="CALC.exe" call terminate >NUL 2>&1

Alles zusammen

Geänderte Batch-Datei:

@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

Weitere Lektüre

DavidPostill
quelle