2017-10-13 6 views
0

タスクリストにProcess1、Process2、Process3があります。同じタスクを繰り返し実行してループを作成し、 'n'ナンバープロセスを終了します。 バッチスクリプトで言及します。あなたはcmd.exeのでタスクリストを行うだけで、そのPIDタグを見つけ、何度も同じプログラムを殺すためにしようとしている場合は、以下の は、プロセスバッチスクリプトのkillプロセス

@Echo Off 

Tasklist | Findstr /I “Process1” 
IF ERRORLEVEL 1 GOTO :Killprocess 
GOTO:EOF 

:Killprocess 
Taskkill /IM “Process1” 
+1

そして、あなたの具体的な質問は何ですか? [ツアー]を読んで[尋ねる]をお読みください! – aschipfl

+0

あなた自身のタグを提供しています。つまり、ここではforループが重要であるかもしれないとすでに決めています。 'FOR /? 'の情報を読んで、自分で学んだことを自分で実装しようとするとどうなりますか? – Compo

答えて

0

を殺すために使用したサンプルスクリプトです。 例:その後

Image Name      PID Session Name  Mem Usage 
========================= ======== ================ ============ 
firefox.exe     26356 Console    139,352 K 
regedit.exe     24244 Console    9,768 K 
cmd.exe      18664 Console    2,380 K 
conhost.exe     2528 Console    7,852 K 
notepad.exe     17364 Console    7,892 K 
notepad.exe     24696 Console    22,028 K 
notepad.exe     25304 Console    5,852 K 
explorer.exe     2864 Console    72,232 K 

は、ちょうどあなたのテキストにPIDを置きます。私はそのようなプログラムを実行する:

@echo off 

TASKLIST 
TASKKILL /PID (your PID here) /F 
TASKKILL /PID (PID 2) /F 

これはあなたの仕事を自動的に殺すでしょう。タスクを見つける必要はありません。プログラムが実行されていない場合は、プログラムを強制終了しません。あなたがそのPIDを変更し続けるプロセスを持っている、またはそのように実行し、その後、同じセッションで実行されない場合

は:

@echo off 
TASKLIST 
TASKKILL /IM (program name) /F 
TASKKILL /IM (program name 2) /F 

再び、それはにISN場合、プログラムは」閉じません走っている。

希望すると便利です。スクリプトで行う提案を

Find more info here...

0

みんなありがとうは....

@echo off 
set len=3 
set obj[0]=chrome.exe 
set obj[1]=vlc.exe 
set obj[2]=MicrosoftEdge.exe 

    set i=0 
    :loop 
    if %i% equ %len% goto :eof 

      for /f "usebackq delims== tokens=2"   %%j in (`set obj[%i%]`) do (
      TASKLIST |FINDSTR /I "%%j" 
      IF ERRORLEVEL 0 TASKKILL /IM "%%j" /F) 


     set /a i=%i%+1 
     goto loop 
関連する問題