批處理指令碼 - 程序



本章將討論批處理指令碼中涉及的各種程序。

檢視正在執行的程序列表

在批處理指令碼中,可以使用 TASKLIST 命令獲取系統中當前正在執行的程序列表。

語法

TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter]
[/FO format] [/NH]
序號 選項與說明
1.

/S system

指定要連線到的遠端系統

2.

/U

[domain\]user

指定命令應在其下執行的使用者上下文。

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 命令列終止任務。用於此目的的命令是 TASKKILL 命令。

語法

TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] 
[/PID processid | /IM imagename] } [/T] [/F]
序號 選項與說明
1.

/S system

指定要連線到的遠端系統

2.

/U

[domain\]user

指定命令應在其下執行的使用者上下文。

3.

/P [password]

指定給定使用者上下文的密碼。如果省略,則提示輸入。

4.

/FI

FilterName

應用篩選器以選擇一組任務。允許使用“*”。例如 imagename eq acme* 參見下面的篩選器以獲取其他資訊和示例。

5.

/PID

processID

指定要終止的程序的 PID。使用 TaskList 獲取 PID。

6.

/IM

ImageName

指定要終止的程序的影像名稱。萬用字元“*”可用於指定所有任務或影像名稱。

7.

/T

終止指定的程序及其由其啟動的任何子程序。

8.

/F

指定強制終止程序。

示例

taskkill /f /im notepad.exe

以上命令將終止開啟的記事本任務(如果已開啟)。

taskill /pid 9214

以上命令將終止程序 ID 為 9214 的程序。

啟動新程序

DOS 指令碼也可以啟動一個全新的程序。這是透過使用 START 命令實現的。

語法

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

其中

  • title − CMD 視窗標題欄的文字(必需)。

  • path − 啟動目錄。

  • command − 要執行的命令、批處理檔案或可執行程式。

  • parameters − 傳遞給命令的引數。

序號 選項與說明
1.

/MIN

最小化啟動視窗

2.

/MAX

最大化啟動視窗。

3.

/LOW

使用 IDLE 優先順序類。

4.

/NORMAL

使用 NORMAL 優先順序類。

5.

/ABOVENORMAL

使用 ABOVENORMAL 優先順序類。

6.

/BELOWNORMAL

使用 BELOWNORMAL 優先順序類。

7.

/HIGH

使用 HIGH 優先順序類。

8.

/REALTIME

使用 REALTIME 優先順序類。

示例

START "Test Batch Script" /Min test.bat

以上命令將在新視窗中執行批處理指令碼 test.bat。視窗將以最小化模式啟動,並且標題為“測試批處理指令碼”。

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

以上命令實際上將在另一個程序中執行 Microsoft Word,然後在 MS Word 中開啟檔案 TESTA.txt。

廣告