News & Politics

Preface 'Batch File Programming'

Description
Preface This book 'Batch File Programming' is written after experimenting and testing all the snippets covered in this book. Batch File Programming is a pretty old one, but i have found lot of books that
Published
of 155
29
Published
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Share
Transcript
Preface This book 'Batch File Programming' is written after experimenting and testing all the snippets covered in this book. Batch File Programming is a pretty old one, but i have found lot of books that haven t covered the dark-side of the batch, which still remains untold. The ultimate goal of this book is to make the readers understand how it works, what are the limitations of the batch, what else is possible with a batch, constructing useful programs with various views, Creating a batch virus by mis-using the commands, creating a batch file to an executable and lot more. This book is aimed at novice to advanced programmer, No matter if you are new to programming, this would be the right drive to start with, since this book contains real time examples along with screenshots that really helps in a better understanding of the concept. First Edition May 2009 Acknowledgements First and foremost I would like to thank my Mum and Dad for their constant care and blessings. My Special thanks to Mr. C. Robinson (CEO, W3cert), for his kind encouragement in authoring this book more over I cannot forget to express my gratitude for my relatives and comrades. I haven t seen him anywhere before, but it s my duty to owe my gratitude to him and he is none other than the Almighty God for the inspiration and guidance in all my successful stages. First Edition May 2009 Dedicated to This Book is dedicated to W3Cert and I hope the contents in this E-Book Batch File Programming will really help the students of W3Cert for their exploration in batch file programming and interfering with the windows kernel by using the commands given in this book. First Edition May 2009 This page is intentionally left blank Batch File Programming 1 Batch File Programming Introduction Batch file programming is the native programming offered by the Microsoft Windows Operating System. Batch file is created using any text editors like notepad, WordPad, WinWord or so on, which comprises of a sequence of built-in commands used to perform some often done tasks like deleting a series of files of same type or of different type, creating logs, clearing unwanted craps from your computer and even for creating a batch VIRUS. Whenever a Batch program is executed, it was interpreted line-by-line by the CLI (Command Line Interpreter) command.com or the cmd.exe. Batch file is really helpful in automating tedious tasks and for maintaining system logs. The commands used while creating a batch file are case insensitive, in the sense that it may accept both small and upper case letters. Modes: There are two different modes that are supported by DOS (Disk Operating System), they were, 1. Interactive Mode. 2. Batch Mode (Silent Mode). Interactive mode: In interactive mode, when a command is executed, it interacts with the user for input and depending upon the input supplied by the user, the further processes are carried out. For example, let s take the del command. The del command is used for deleting files that reside inside a directory. Now I am going to delete all the files inside a folder named a, and when I executed the following command, it is interacting with me prompting Are you sure (Y/N)?, confirming the deletion operation, and depending upon my input, it decides what to do. If I hit Y then it will delete the files specified, else if I hit N then it won t delete. 2 C:\ del a C:\a\*, Are you sure (Y/N)? y Batch Mode: Batch mode can also be referred as Silent mode or Quiet Mode, and this is mere opposite to the interactive mode. The command that operates at batch mode will never interact with the user at any instance, instead it will take care of every operation by itself. For example, I am going to explain this by using the same del command. There is a switch available for the del command, which makes the command to operate at silent mode, and that switch is /Q C:\ del /Q a C:\ In this case, the command is not at all interacting with me, whether to delete those file or not. In the above example, I have tried to delete the same files in the same folder by using the same command but with a different switch. Anyhow both the commands will perform the same operation but the mode it operates differs. How to create a Batch Program: As said earlier, batch programs can be written using any of the text editors such as notepad, wordpad and so on, but notepad is the most often used text editor in such cases. Like any other programing languages, lets start our first program with the Hello World program. 1. Open up a notepad and type the off Echo Hello World pause 3 2. Save the file with any name you wish, but make sure that you save the file extension with.bat, in this case I am saving this file as first.bat. 3. When you save the batch file, then the icon becomes like the below icon, In Windows XP, the Batch file icon looks like above, where as in Windows Vista the Icon looks like the below image, 4. Just double click to execute the batch file that you have created now. And the output looks like, 5. You are done! Let me explain what does the above given program does, echo is the command used to print text on the screen, so whatever that follows the echo command will be displayed on the output screen. This command is just like the printf statement in the C language. When you type the echo command alone, then it will tell you whether the echo is ON or echo is OFF. It s always recommended to turn the echo off, else it will display the prompts like (C:\ ) and so on. In order to avoid the prompts being displayed, the echo is turned off by using the off or simply by using the echo off. Echo Hello World will display the Hello World on the output screen, and the pause command is used to wait for the user interaction, whether to proceed further or not. If the pause is not used, then the batch will terminate immediately after displaying the Hello World. 4 Internal and External Commands There are two types of commands that we can run from a command prompt, and they were, 1. Internal commands 2. External commands. Internal Commands Internal commands are nothing but the built-in commands that are shipped along with the operating system, for example, echo, cls, del, dir were few of the well known internal commands. External Commands External commands are the commands that are often created while installing a new application and these commands mostly have no use except calling that application and support files. Few external commands can only be executed in the Run dialog box (start Run), but not on the command prompt, and those commands include firefox. The firefox command can be executed only from the run line, that too if the firefox application is installed on that machine and it won t work on the command prompt. Likewise the firefox there are various other external commands such as the PsTools which includes commands like, PsExec, PsFile, PsGetSid, PsInfo, PsKill, PsList, PsLoggedOn and so on. 5 Run Line commands As said earlier batch file is comprised of sequence of run line commands, hence it s a must to know at least few useful run line commands for constructing a good batch program. Here I am going to list out the useful run line commands with a brief description. Commands Descriptions access.cpl accwiz appwiz.cpl ciadv.msc control admintools cleanmgr control color compmgmt.msc control folders cliconfg certmgr.msc charmap chkdsk clipbrd calc cmd devmgmt.msc dfrg.msc Accessibility Controls Accessibility Wizard Add/Remove Programs Indexing Service Administrative Tools Disk Cleanup Utility Display Properties Computer Management Console Folder Options SQL Client Configuration Certificate Manager Character Map Check Disk Utility Clipboard Viewer Opens calculator Opens command prompt Device Manager Disk Defragmenter 6 diskmgmt.msc dcomcnfg ddeshare diskpart desk.cpl drwtsn32 directx.cpl dxdiag eudcedit Disk Management Component Services DDE Shares Disk Partition Manager Display Properties Dr. Watson Direct X Control Panel Direct X Troubleshooter Private Character Editor eventvwr.msc Event Viewer ( Maintaining System Logs ) explorer freecell fsquirt fsmgmt.msc gpedit.msc hdwwiz.cpl iexpress iexplore inetcpl.cpl ipconfig intl.cpl joy.cpl lusrmgr.msc logoff magnify Opens My Documents FreeCell Game Bluetooth Transfer Wizard Shared Folders Group Policy Editor Add Hardware Wizard Iexpress Wizard (Package creator) Internet Explorer Internet Explorer Properties Windows IP Configuration Regional Settings Game Controllers Local Users and Groups Logs out current user Open Magnifier 7 makecab msconfig mshearts msinfo32 mspaint msmsgs mstsc mmsys.cpl mqbkup notepad ntmsmgr.msc ntmsoprq.msc ncpa.cpl netsetup.cpl openfiles Cabinet Maker, file compressor. Open System Configuration Utility Opens Hearts game System Information Opens Mspaint Windows Messenger Remote Desktop Sounds and Audio Message Queue Backup\Restore Utility Opens a New Notepad Removable Storage Removable Storage Operator Requests Network Connections Network Setup Wizard Used to view Files Opened Remotely via local share points odbccp32.cpl osk proxycfg packager perfmon.msc powercfg.cpl pentnt ODBC Data Source Administrator On Screen Keyboard Proxy configuration Object Packager Performance Monitor Power Options Checks for Floating point error in Intel based processors qappsrv Displays the available application terminal servers 8 on the network. qprocess qwinsta rcp Displays information about processes Display information about Terminal Sessions Copies files to and from computer running the RCP service recover Recovers readable information from a bad or defective disk. relog replace rexec Used for Logging. Replaces files Runs commands on remote hosts running the REXEC service route rsh Manipulates network routing tables Runs commands on remote hosts running the RSH service rsm Manages media resources using Removable Storage runas Allows a user to run specific tools and programs with different permissions than the user s current logon provides. regedit rsop.msc rwinsta rasphone services.msc Opens Registry Editor Resultant Set of Policy Reset the session Remote Access Phonebook Used for Managing all the services on the computer. 9 sigverif secpol.msc shutdown syskey sc File Signature Verification Tool Local Security Settings Shutdown Windows Windows System Security Tool Communicates with the service controller and installed services. schtasks setver Replaced with at. Sets the version number that MS-DOS reports to a program shadow Helps in remote connection & network used to monitor another Terminal Services session shrpubw sndvol32 sysedit sol timedate.cpl telephon.cpl telnet tftp Shared Folder Wizard Volume Control Windows.ini, system.ini, config.sys, autoexec.bat Opens up Solitaire Game Date and Time Properties Phone and Modem Options Telnet Client Transfers files to and from a remote computer running the TFTP service tlntadmn Telnet Administration. Used to start, stop, and send msg to a terminal session connected to via telnet. tscon tsdiscon tskill Attaches a user session to a terminal session. Disconnects a session from a terminal server. Ends a process. Even can terminate a process 10 running on a remote session. tourstart tsshutdn typeperf Windows XP Tour Wizard shutdown in 60 sec Very useful in login events. Used to monitor Processor threads and writes into a specified log file. userinit verifier winchat winmine wuaucpl.cpl wscui.cpl wmplayer wmimgmt.msc w32tm My Documents Driver Verifier Utility Microsoft Chat Minesweeper Game Automatic Updates Security Center Windows Media Player Windows Management Infrastructure Tool used to diagnose problems occurring with Windows Time. register to run as a service and add default configuration to the registry winmsd wupdmgr winver write System Information. Windows Update Launches Displays Windows Version Opens WordPad 11 Batch Operators Similar to other programming languages, batch program do support various operators for performing operations like arithmetic and logical operations, bitwise AND, OR, NOT, shifting and redirection operation and separators and grouping operators. Operators Description () Grouping! ~ - Unary operators * / % + - Arithmetic operators Logical shift and re directional operators & Bitwise and ^ Bitwise exclusive or Bitwise or = *= /= %= += -= &= ^= = = = Assignment operators, separator && For using Multiple commands For executing one from many commands The above given were the operators available in Batch file programming for performing arithmetic and logical operations. Let me brief you the operators with a small example, Note : For performing arithmetic operations, the SET command should be used along with the /A switch. For performing an addition operation on two integers, then I have to use the below command, C:\ set /A 12 As you see in the above example, the set /A is used for performing arithmetic operations like addition, subtraction, multiplication and division. The above example is used for performing an addition operation on two integer namely 5 and 5 and gives the output as 10. Similarly you can use the other arithmetic operators. Example: The below command is used to subtract 5 from 10. C:\ set /A The below command is used finding the product between 5 and 5. C:\ set /A 5*5 25 The below command is for dividing 10 by 5 and displays the output. C:\ set /A 10/5 2 The below command is finding the remainder value and this operator is called modulo operator. In this example the remainder value obtained when 11 divided by 5 is 1 and is displayed as output. C:\ set /A 11%5 1 Operator precedence: Likewise other programming languages, batch program does support operator precedence for performing a valid arithmetic operation to obtain accurate results. The precedence of operations are given in order, *, /, %, +, -. The expression that is enclosed and grouped with the grouping operator () gets the high priority in the precedence. C:\ set /A (10-5)*2+6/2 13 13 In the above example, the expression that is enclosed within the () operator gets the high priority and thus 10-5 is 5, the next priority moves to the / division operator and 6/2 gives 3, then comes the multiplication * operator 5*2 gives 10 then it is summed up with 3 to obtain the final result as 13. To redirect the output of one command to other file, the and command is used. For example the below command is used to print the text hello redirection to a notepad file named first.txt C:\ echo hello redirection first.txt C:\ As we already have seen that the echo command is used for printing the given text on the screen, here by using the redirection operator we are redirecting the output of the command to a text file. It will create a new text file even it wasn t already there. Likewise you can redirect the output of any command to any other files. The below command is used for performing the same operation but the redirection happens to word document, C:\ echo hello redirection first.doc The tilde ~ operator is a unary operator that is used for shortening the long directory names, the following example will brief with the usage of this operator. The tilde operator can be used after 6 consecutive characters of a directory name, for example the Documents and Settings is a directory that contains more than 8 characters, instead of typing them all and messing with it, we can use the ~ operator, so that it will automatically recognizes the path and performs the operation mentioned, C:\ cd C:\DOCUME~1\CYB3RC~1\LOCALS~1\Temp C:\DOCUME~1\CYB3RC~1\LOCALS~1\Temp 14 The above command is just a path to the location C:\Documents and Settings\Cyb3rcr4wl3r\Local Settings\Temp, where Cyb3rcr4wl3r is the user account on my computer. Note: even though the ~ operator is a unary operator, it can t be used without the 1 following the operator. The && operator is used to execute multiple commands in a single line, for example, the following command is used to print the text hi and hello using two different echo commands, C:\ echo Hi && echo hello Hi Hello The pipeline operator is used for giving the output of one command as input for another command, C:\ echo Y del *.txt In the above example, whenever you delete a file using the del command, it will prompt you with a confirmation message whether to delete the file or not, and only depending upon the user input it will proceed further, here we can make use of the pipeline operator to print Y when the del command prompt for the user interaction. Whenever the del command prompts the user for the confirmation, the output of the echo command (i.e. Y ) will be given as input for the del command, and as a result it deletes all the text files that reside in the specified directory. 15 Basic Commands Here I am going to explain few basic and often used commands used for constructing a simple batch program. Before getting into the commands, there are few thing that I need to explain in detail, and they were sub-commands, switches and parameters. Sub-commands: Sub-commands are nothing but the supportive commands that are used along with the main commands to narrow down the result that we are looking for. For example, I want to view how many user accounts are there created in my computer, and this can be done using the net command, as below, As you can see in the above screenshot, net is the main command, where as user is the sub-command used for narrowing down the result that we want. A main command can have any number of subcommands and that too depends upon the usage. Once the command gets executed, its displaying all the available user accounts in my computer. Switches: Say, for instance i am going to create a new user account in my computer by making use of the net command, and the user account that I wish to create is technocrawl with password P4$$w0rd and this can be done using the following command, 16 As you can see in the above screenshot, switch is used again to narrow down the operation of the command that being performed, and most often switches are prefixed with as backward slash / or with an hyphen -. The above command have created a new user account named technocrawl with the password P4$$w0rd. Parameters: Parameters can also be referred as command line arguments and are nothing but the input supplied to the program by the user while the program is running, and depending upon the parameter the program will proceed the further operation. Copy the below given code into a notepad and save it as welcome.bat. Goto command prompt and run the program by using its name welcome.bat (Make sure that the welcome.bat exists in the directory where you want to off cd\ echo Welcome %1% pause Output: 17 Where, welcome is the batch file name and its followed by the parameter, here the parameter is Cybercrawler. Note: You can specify n number of parameters for a batch file. Each parameter can be accessed by using the %number% format, where you have to replace the number with 1 to access the first parameter value, and 2 for accessing the second parameter value and viceversa. Incase if I want to access the file name then it can be access by using %0%, and for accessing the fifth parametes %5% and so on. Help is the command that is used to display the available internal commands supported by windows, so that you can type help to know the internal commands available on your computer. Each command has its own sub-commands and switches, and to find out the usage of each command in detail, then you may use the /? (without quotes) followed by the command, for example, if I want to know what are the available sub-commands and switches for the net command, then I can use the net /? command to get more details. Rem: The rem command is used for commenting the source code, so whatever that follows the rem was ignored. The rem command is often used for commenting large batch programs for easy identification incase of updating of off Rem Program for printing hello world. Echo Hello World. Pau
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x