2024年6月30日 星期日

Batch Script - Process , Aliases shortcuts

 

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.

Alias Example Output

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.

 

沒有留言: