สคริปต์ชุด - กระบวนการ
ในบทนี้เราจะพูดถึงกระบวนการต่างๆที่เกี่ยวข้องกับ Batch Script
การดูรายการกระบวนการทำงาน
ใน Batch Script คำสั่ง 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 ระบุว่าไม่ควรแสดง "Column Header" ในเอาต์พุต ใช้ได้กับรูปแบบ "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 หรือใหม่กว่าสามารถฆ่างานจากบรรทัดคำสั่งของ Windows โดยใช้รหัสกระบวนการ (PID) หรือชื่อภาพ คำสั่งที่ใช้เพื่อจุดประสงค์นี้คือคำสั่ง TASKILL
ไวยากรณ์
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 ใช้ตัวกรองเพื่อเลือกชุดของงาน อนุญาตให้ใช้ "*" เช่น ชื่อภาพ eq acme * ดูตัวกรองด้านล่างสำหรับข้อมูลเพิ่มเติมและตัวอย่าง |
5. | /PID processID ระบุ PID ของกระบวนการที่จะยุติ ใช้ TaskList เพื่อรับ PID |
6. | /IM ImageName ระบุชื่ออิมเมจของกระบวนการที่จะยุติ สัญลักษณ์แทน '*' สามารถใช้เพื่อระบุงานหรือชื่อรูปภาพทั้งหมด |
7. | /T ยุติกระบวนการที่ระบุและกระบวนการย่อยใด ๆ ที่เริ่มต้นโดยมัน |
8. | /F ระบุเพื่อยุติกระบวนการอย่างมีผลบังคับ (es) |
ตัวอย่าง
taskkill /f /im notepad.exe
คำสั่งดังกล่าวจะฆ่างาน notepad ที่เปิดอยู่หากเปิดอยู่
taskill /pid 9214
คำสั่งดังกล่าวฆ่ากระบวนการที่มีกระบวนการ 9214
การเริ่มกระบวนการใหม่
การเขียนสคริปต์ DOS ยังมีความพร้อมที่จะเริ่มกระบวนการใหม่ทั้งหมด สิ่งนี้ทำได้โดยใช้คำสั่ง START
ไวยากรณ์
START "title" [/D path] [options] "command" [parameters]
ประเด็น
title - ข้อความสำหรับแถบชื่อเรื่องหน้าต่าง CMD (จำเป็น)
path - ไดเรกทอรีเริ่มต้น
command - คำสั่งไฟล์แบตช์หรือโปรแกรมปฏิบัติการที่จะเรียกใช้
parameters - พารามิเตอร์ส่งผ่านไปยังคำสั่ง
ส. | ตัวเลือกและคำอธิบาย |
---|---|
1. | /MIN หน้าต่างเริ่มย่อเล็กสุด |
2. | /MAX หน้าต่างเริ่มขยายใหญ่สุด |
3. | /LOW ใช้คลาสลำดับความสำคัญ IDLE |
4. | /NORMAL ใช้คลาสลำดับความสำคัญปกติ |
5. | /ABOVENORMAL ใช้คลาสลำดับความสำคัญ ABOVENORMAL |
6. | /BELOWNORMAL ใช้คลาสลำดับความสำคัญ BELOWNORMAL |
7. | /HIGH ใช้คลาสที่มีลำดับความสำคัญสูง |
8. | /REALTIME ใช้คลาสลำดับความสำคัญ REALTIME |
ตัวอย่าง
START "Test Batch Script" /Min test.bat
คำสั่งดังกล่าวจะเรียกใช้ batch script test.bat ในหน้าต่างใหม่ หน้าต่างจะเริ่มต้นในโหมดย่อเล็กสุดและยังมีชื่อของ“ Test Batch Script”
START "" "C:\Program Files\Microsoft Office\Winword.exe" "D:\test\TESTA.txt"
คำสั่งดังกล่าวจะเรียกใช้ Microsoft word ในกระบวนการอื่นจากนั้นเปิดไฟล์ TESTA.txt ใน MS Word