批处理脚本 - 进程
在本章中,我们将讨论批处理脚本中涉及的各种进程。
查看正在运行的进程列表
在批处理脚本中,TASKLIST 命令可用于获取系统中当前正在运行的进程的列表。
语法
TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
S.No. | 选项 & 描述 |
---|---|
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
上述命令获取任务列表显示的输出并将其保存到 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]
S.No. | 选项 & 描述 |
---|---|
1. |
/S system 指定要连接的远程系统 |
2. |
/U [domain\]user 指定命令应执行的用户上下文。 |
3. |
/P [password] 指定给定用户上下文的密码。 如果省略则提示输入。 |
4. |
/FI FilterName 应用过滤器来选择一组任务。 允许使用"*"。 |
5. |
/PID processID 指定要终止的进程的PID。 使用TaskList获取PID。 |
6. |
/IM ImageName 指定要终止的进程的映像名称。 通配符"*"可用于指定所有任务或图像名称。 |
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 − 传递给命令的参数。
S.No. | 选项 & 描述 |
---|---|
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。 窗口将以最小化模式启动,并且标题为"Test Batch Script"。
START "" "C:\Program Files\Microsoft Office\Winword.exe" "D:\test\TESTA.txt"
上面的命令实际上会在另一个进程中运行 Microsoft Word,然后在 MS Word 中打开文件 TESTA.txt。