In this chapter, we will discuss the various processes involved in Batch Script.
Viewing the List of Running Processes
In Batch Script, the TASKLIST command can be used to get the list of currently running processes within a system.
Syntax
TASKLIST [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
Examples
TASKLIST
The above command will get the list of all the processes running on your local system. Following is a snapshot of the output which is rendered when the above command is run as it is. As you can see from the following output, not only do you get the various processes running on your system, you also get the memory usage of each process.
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
The above command takes the output displayed by tasklist and saves it to the process.txt file.
tasklist /fi "memusage gt 40000"
The above command will only fetch those processes whose memory is greater than 40MB. Following is a sample output that can be rendered.
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
Killing a Particular Process
Allows a user running Microsoft Windows XP professional, Windows 2003, or later to kill a task from a Windows command line by process id (PID) or image name. The command used for this purpose is the TASKILL command.
Syntax
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]
Examples
taskkill /f /im notepad.exe
The above command kills the open notepad task, if open.
taskill /pid 9214
The above command kills a process which has a process of 9214.
Starting a New Process
DOS scripting also has the availability to start a new process altogether. This is achieved by using the START command.
Syntax
START "title" [/D path] [options] "command" [parameters]
Wherein
title − Text for the CMD window title bar (required.)
path − Starting directory.
command − The command, batch file or executable program to run.
parameters − The parameters passed to the command.
Examples
START "Test Batch Script" /Min test.bat
The above command will run the batch script test.bat in a new window. The windows will start in the minimized mode and also have the title of “Test Batch Script”.
START "" "C:\Program Files\Microsoft Office\Winword.exe" "D:\test\TESTA.txt"
The above command will actually run Microsoft word in another process and then open the file TESTA.txt in MS Word.
Batch Script - Aliases
Aliases means creating shortcuts or keywords for existing commands. Suppose if we wanted to execute the below command which is nothing but the directory listing command with the /w option to not show all of the necessary details in a directory listing.
Dir /w
Suppose if we were to create a shortcut to this command as follows.
dw = dir /w
When we want to execute the dir /w command, we can simply type in the word dw. The word ‘dw’ has now become an alias to the command Dir /w.
Creating an Alias
Alias are managed by using the doskey command.
Syntax
DOSKEY [options] [macroname=[text]]
Wherein
macroname − A short name for the macro.
text − The commands you want to recall.
Following are the description of the options which can be presented to the DOSKEY command.
S.No. | Options & Description |
---|---|
1. |
/REINSTALL Installs a new copy of Doskey |
2. |
/LISTSIZE = size Sets size of command history buffer. |
3. |
/MACROS Displays all Doskey macros. |
4. |
/MACROS:ALL Displays all Doskey macros for all executables which have Doskey macros. |
5. |
/MACROS:exename Displays all Doskey macros for the given executable. |
6. |
/HISTORY Displays all commands stored in memory. |
7. |
/INSERT Specifies that new text you type is inserted in old text. |
8. |
/OVERSTRIKE Specifies that new text overwrites old text. |
9. |
/EXENAME = exename Specifies the executable. |
10. |
/MACROFILE = filename Specifies a file of macros to install. |
11. |
macroname Specifies a name for a macro you create. |
12. |
text Specifies commands you want to record. |
Example
Create a new file called keys.bat and enter the following commands in the file. The below commands creates two aliases, one if for the cd command, which automatically goes to the directory called test. And the other is for the dir command.
@echo off doskey cd = cd/test doskey d = dir
Once you execute the command, you will able to run these aliases in the command prompt.
Output
The following screenshot shows that after the above created batch file is executed, you can freely enter the ‘d’ command and it will give you the directory listing which means that your alias has been created.
Deleting an Alias
An alias or macro can be deleted by setting the value of the macro to NULL.
Example
@echo off doskey cd = cd/test doskey d = dir d=
In the above example, we are first setting the macro d to d = dir. After which we are setting it to NULL. Because we have set the value of d to NULL, the macro d will deleted.
Replacing an Alias
An alias or macro can be replaced by setting the value of the macro to the new desired value.
Example
@echo off doskey cd = cd/test doskey d = dir d = dir /w
In the above example, we are first setting the macro d to d = dir. After which we are setting it to dir /w. Since we have set the value of d to a new value, the alias ‘d’ will now take on the new value.
沒有留言:
張貼留言