Batch-script-process
バッチスクリプト-プロセス
この章では、バッチスクリプトに関連するさまざまなプロセスについて説明します。
実行中のプロセスのリストを表示する
バッチスクリプトでは、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
フィルターを適用して一連のタスクを選択します。 "*"の使用を許可します。 ex. imagename eq acme *追加情報と例については、以下のフィルターを参照してください。 |
5. |
/PID
終了するプロセスの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を開きます。