Windows の .bat ファイルを作成してプロセスを強制終了する方法はありますか?

StackOverflow https://stackoverflow.com/questions/33822

  •  09-06-2019
  •  | 
  •  

質問

そのため、会社所有の開発マシンの電源を入れるたびに、IDE から適切なパフォーマンスを得るために、タスク マネージャーやその他のプロセス管理アプリを使用して 10 以上のプロセスを強制終了する必要があります。はい、これらは、セキュリティとコンプライアンスのために会社が私のマシンにインストールするプログラムのプロセスです。私がやりたいのは、問題のプロセスを起動して強制終了できる、ある種の .bat ファイルまたはスクリプトを用意することです。

これを行う方法をすでに知っている人はいますか?

役に立ちましたか?

解決

これは「taskkill」で行うことができます。/IM パラメータを使用すると、イメージ名を指定できます。例:

taskkill /im somecorporateprocess.exe

これを「強制的に」強制終了することもできます。

taskkill /f /im somecorporateprocess.exe

強制終了したいプロセスごとに 1 行を追加し、.bat ファイルとして保存し、起動ディレクトリに置くだけです。問題が解決しました!

これがレガシー システムの場合、 PsKill 同じことをします。

他のヒント

taskkill /f /im "devenv.exe"

これにより、exe 名「devenv.exe」の pid が強制的に強制終了されます。

nix'y kill コマンドの -9 に相当

TASKKILL は Windows の一部の Home/Basic エディションでは利用できない可能性があるため、ここでいくつかの代替手段を示します。

TSKILL processName

または

TSKILL PID

心に留めておいてください processName 持つべきではありません .exe 接尾辞は 18 文字に制限されます。

別のオプションは WMIC :

wmic Path win32_process Where "Caption Like 'MyProcess.exe'" Call Terminate

wmic は taskkill よりもさらに高い柔軟性を提供します。 wmic Path win32_process get フィルタリングできる利用可能なフィールドが表示されます。

開発者としては、自分のマシンに対してある程度の管理制御を持っていると思います。その場合は、コマンド ラインから msconfig.exe を実行します。多くのプロセスを開始から削除できるため、上記の解決策でプロセスを強制終了する必要がなくなります。

得る 自動実行 Sony ルートキットを発見した Sysinternals の Mark Russinovich より...自動的に開始されるものをクリーンアップするために私が今まで使用した中で最高のソフトウェア。

ダウンロード PSキル. 。停止させたいプロセスごとにそれを呼び出すバッチ ファイルを作成し、それぞれのプロセスの名前を渡します。

パワーシェルを使おう!プロセスを管理するための組み込みコマンドレット。 例はこちら (難しい方法)、 ここ(内蔵) と ここ (もっと)。

この条件で機能する以下のロジックを見つけてください。

単純に電話すると taskkill /im applicationname.exe, 、このプロセスが実行されている場合にのみ強制終了されます。このプロセスが実行されていない場合、エラーがスローされます。

事前に確認するため takskill が呼び出されると、確実に実行されるかどうかのチェックを行うことができます taskkill プロセスが実行中の場合にのみ実行されるため、エラーはスローされません。

tasklist /fi "imagename eq applicationname.exe" |find ":" > nul

if errorlevel 1 taskkill /f /im "applicationname.exe"

ここで私はコマンドの例を書きました。 cmd コマンドラインプロンプト用に書かれています chrome.exe.

FOR /F "tokens=2 delims= " %P IN ('tasklist /FO Table /M "chrome*" /NH') DO (TASKKILL /PID %P)

for はすべてを取得するだけです PID以下にリストされています tasklist コマンドを実行して実行する TASKKILL /PID 毎回 PID

tasklist /FO Table /M "chrome*" /NH

バッチ ファイルで for を使用する場合は、%P の代わりに %%P を使用してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top