Batch-script-process

提供:Dev Guides
移動先:案内検索

バッチスクリプト-プロセス

この章では、バッチスクリプトに関連するさまざまなプロセスについて説明します。

実行中のプロセスのリストを表示する

バッチスクリプトでは、TASKLISTコマンドを使用して、システム内で現在実行中のプロセスのリストを取得できます。

構文

TASKLIST [/S system [/U username [/P [password]]]] [/M [module] |/SVC |/V] [/FI filter]
[/FO format] [/NH]

以下は、TASKLISTコマンドに表示できるオプションの説明です。

S.No. Options & Description
1.

/S system

接続するリモートシステムを指定します

2.

/U

  • [ドメイン\]ユーザー *

コマンドを実行するユーザーコンテキストを指定します。

3.

/P [password]

指定されたユーザーコンテキストのパスワードを指定します。 省略すると入力を求められます。

4.

/M [module]

指定されたexe/dll名を現在使用しているすべてのタスクをリストします。 モジュール名が指定されていない場合、ロードされたすべてのモジュールが表示されます。

5.

/SVC

各プロセスでホストされているサービスを表示します。

6.

/V

詳細なタスク情報を表示します。

7.

/FI filter

フィルターによって指定された特定の基準に一致する一連のタスクを表示します。

8.

/FO format

出力形式を指定します。 有効な値:「TABLE」、「LIST」、「CSV」。

9.

/NH

「列ヘッダー」を出力に表示しないことを指定します。 「TABLE」および「CSV」形式でのみ有効です。

TASKLIST

上記のコマンドは、ローカルシステムで実行されているすべてのプロセスのリストを取得します。 以下は、上記のコマンドをそのまま実行したときにレンダリングされる出力のスナップショットです。 次の出力からわかるように、システムで実行されているさまざまなプロセスを取得するだけでなく、各プロセスのメモリ使用量も取得します。

Image Name                    PID       Session Name       Session#     Mem Usage
========================= ========    ================ =========== ============
System Idle Process             0        Services            0              4 K
System                          4        Services            0            272 K
smss.exe                      344        Services            0          1,040 K
csrss.exe                     528        Services            0          3,892 K
csrss.exe                     612        Console             1         41,788 K
wininit.exe                   620        Services            0          3,528 K
winlogon.exe                  648        Console             1          5,884 K
services.exe                  712        Services            0          6,224 K
lsass.exe                     720        Services            0          9,712 K
svchost.exe                   788        Services            0         10,048 K
svchost.exe                   832        Services            0          7,696 K
dwm.exe                       916        Console             1        117,440 K
nvvsvc.exe                    932        Services            0          6,692 K
nvxdsync.exe                  968        Console             1         16,328 K
nvvsvc.exe                    976        Console             1         12,756 K
svchost.exe                  1012        Services            0         21,648 K
svchost.exe                   236        Services            0         33,864 K
svchost.exe                   480        Services            0         11,152 K
svchost.exe                  1028        Services            0         11,104 K
svchost.exe                  1048        Services            0         16,108 K
wlanext.exe                  1220        Services            0         12,560 K
conhost.exe                  1228        Services            0          2,588 K
svchost.exe                  1276        Services            0         13,888 K
svchost.exe                  1420        Services            0         13,488 K
spoolsv.exe                  1556        Services            0          9,340 K
tasklist > process.txt

上記のコマンドは、tasklistで表示される出力を取得して、process.txtファイルに保存します。

tasklist/fi "memusage gt 40000"

上記のコマンドは、メモリが40MBを超えるプロセスのみを取得します。 以下は、レンダリング可能なサンプル出力です。

Image Name                    PID      Session Name     Session#     Mem Usage
=========================   ======== ================ =========== ============
dwm.exe                        916     Console             1        127,912 K
explorer.exe                  2904     Console             1        125,868 K
ServerManager.exe             1836     Console             1         59,796 K
WINWORD.EXE                   2456     Console             1        144,504 K
chrome.exe                    4892     Console             1        123,232 K
chrome.exe                    4976     Console             1         69,412 K
chrome.exe                    1724     Console             1         76,416 K
chrome.exe                    3992     Console             1         56,156 K
chrome.exe                    1168     Console             1        233,628 K
chrome.exe                     816     Console             1         66,808 K

特定のプロセスを殺す

Microsoft Windows XP Professional、Windows 2003、またはそれ以降を実行しているユーザーは、プロセスID(PID)またはイメージ名によってWindowsコマンドラインからタスクを強制終了できます。 この目的で使用されるコマンドは、TASKILLコマンドです。

構文

TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter]
[/PID processid |/IM imagename] } [/T] [/F]

以下は、TASKKILLコマンドに表示できるオプションの説明です。

S.No. Options & Description
1.

/S system

接続するリモートシステムを指定します

2.

/U

  • [ドメイン\]ユーザー *

コマンドを実行するユーザーコンテキストを指定します。

3.

/P [password]

指定されたユーザーコンテキストのパスワードを指定します。 省略すると入力を求められます。

4.

/FI

  • FilterName*

フィルターを適用して一連のタスクを選択します。 "*"の使用を許可します。 ex. imagename eq acme *追加情報と例については、以下のフィルターを参照してください。

5.

/PID

  • processID*

終了するプロセスのPIDを指定します。 PIDを取得するには、TaskListを使用してください。

6.

/IM

画像名

終了するプロセスのイメージ名を指定します。 ワイルドカード「*」を使用して、すべてのタスクまたはイメージ名を指定できます。

7.

/T

指定されたプロセスと、それによって開始されたすべての子プロセスを終了します。

8.

/F

プロセスを強制的に終了することを指定します。

taskkill/f/im notepad.exe

上記のコマンドは、開いている場合、開いているメモ帳タスクを強制終了します。

taskill/pid 9214

上記のコマンドは、9214のプロセスを持つプロセスを強制終了します。

新しいプロセスの開始

DOSスクリプトには、新しいプロセスを完全に開始する機能もあります。 これは、STARTコマンドを使用して実現されます。

構文

START "title" [/D path] [options] "command" [parameters]

どこで

  • title -CMDウィンドウのタイトルバーのテキスト(必須)
  • path -開始ディレクトリ。
  • command -実行するコマンド、バッチファイル、または実行可能プログラム。
  • parameters -コマンドに渡されるパラメーター。

以下は、STARTコマンドに表示できるオプションの説明です。

S.No. Options & Description
1.

/MIN

最小化された開始ウィンドウ

2.

/MAX

ウィンドウを最大化して起動します。

3.

/LOW

IDLE優先度クラスを使用します。

4.

/NORMAL

NORMAL優先度クラスを使用します。

5.

/ABOVENORMAL

ABOVENORMAL優先度クラスを使用します。

6.

/BELOWNORMAL

BELOWNORMAL優先度クラスを使用します。

7.

/HIGH

高優先度クラスを使用します。

8.

/REALTIME

REALTIME優先度クラスを使用します。

START "Test Batch Script"/Min test.bat

上記のコマンドは、新しいウィンドウでバッチスクリプトtest.batを実行します。 ウィンドウは最小化モードで起動し、「Test Batch Script」というタイトルも付けられます。

START "" "C:\Program Files\Microsoft Office\Winword.exe" "D:\test\TESTA.txt"

上記のコマンドは、実際に別のプロセスでMicrosoft Wordを実行し、MS WordでファイルTESTA.txtを開きます。