Wednesday, November 10, 2010

Abhimanyu Khanna

Hi again guys, i decided to write about about Batch File Programming,

 Batch file programming is nothing but the Windows version of Unix Shell 
Programming. Let's start by understanding what happens when we give a DOS 
command. DOS is basically a file called command.com
It is this file (command.com) which handles all DOS commands that you give at the 
DOS prompt---such as COPY, DIR, DEL etc. These commands are built in with the 
Command.com file. (Such commands which are built in are called internal 
commands.).DOS has something called external commands too such as FORMAT, 
UNDELETE, BACKUP etc.

So whenever we give a DOS command either internal or external, command.com 
either straightaway executes the command (Internal Commands) or calls an external 
separate program which executes the command for it and returns the 
result (External Commands.)

So why do I need Batch File Programs? Say you need to execute a set of commands 
over and over again to perform a routine task like Backing up Important Files, 
Deleting temporary files(*.tmp, .bak , ~.* etc)
then it is very difficult to type the same set of commands over and over 
again. To perform a bulk set of same commands over and over again, Batch files 
are used. Batch Files are to DOS what Macros are to Microsoft Office and are used 
to perform an automated predefined set of tasks over and over again.


So how do I create batch files? To start enjoying using Batch files, you need to 
learn to create Batch files. Batch files are basically plain text files 
containing DOS commands. So the best editor to write your commands in would be 
Notepad or the DOS Editor (EDIT) All you need to remember is that a batch file 
should have the extension .BAT(dot bat)Executing a batch file is quite simple 
too. For example if you create a Batch file and save it with the filename 
batch.bat then all you need to execute the batch file is to type:

C:\windows>batch.bat

So what happens when you give a Batch file to the command.com to execute? 
Whenever command.com comes across a batch file program, it goes into batch 
mode. In the batch mode, it reads the commands from the batch file line by 
line. So basically what happens is, command.com opens the batch file and reads 
the first line, then it closes the batch file. It then executes the command and 
again reopens the batch file and reads the next line from it. Batch files are 
treated as Internal DOS commands.
********************

Hacking Truth: While creating a batch file, one thing that you need to keep in 
mind is that the filename of the batch file should not use the same name as a 
DOS command. For example, if you create a batch file by the name dir.bat and then 
try to execute it at the prompt, nothing will happen.
This is because when command.com comes across a command, it first checks to see 
if it is an internal command. If it is not then command.com checks if it a .COM, 
.EXE or .BAT file with a matching filename.
All external DOS commands use either a .COM or a .EXE extension, DOS never 
bothers to check if the batch program exits.

******************

Now let's move on to your first Batch file program. We will unlike 
always(Normally we begin with the obligatory Hello World program) first take up 
a simple batch file which executes or launches a .EXE program. Simply type the 
following in a blank text file and save it with a .BAT extension.
C:
cd windows
telnet
Now let's analyze the code, the first line tells command.com to go to the C:
Next it tells it to change the current directory to Windows. The last line tells it to 
launch the telnet client. You may contradict saying that the full filename is 
telnet.exe. Yes you are right, but the .exe extension is automatically added by 
command.com. Normally we do not need to change the drive and the directory as 
the Windows directory is the default DOS folder. So instead the bath file 
could simply contain the below and would still work.

telnet

Now let's execute this batch file and see what results it shows. Launch 
command.com (DOS) and execute the batch file by typing:

C:\WINDOWS>batch_file_name
You would get the following result:
C:\WINDOWS>scandisk
And Scandisk is launched. So now the you know the basic functioning of Batch 
files, let' move on to Batch file commands.


So thats it for now, although batch file programming is a huge topic and it really cant be covered in a single blog , but i hope you all got the idea.



Abhimanyu khanna

No comments:

Post a Comment