In dos, the command ____ displays the files and folders in the current location.
Batch Script is incorporated to automate command sequences which are repetitive in nature. Scripting is a way by which one can alleviate this necessity by automating these command sequences in order to make one’s life at the shell easier and more productive. In most organizations, Batch Script is incorporated in some way or the other to automate stuff. Show
Some of the features of Batch Script are −
Some of the common uses of Batch Script are −
Batch scripts are stored in simple text files containing lines with commands that get executed in sequence, one after the other. These files have the special extension BAT or CMD. Files of this type are recognized and executed through an interface (sometimes called a shell) provided by a system file called the command interpreter. On Windows systems, this interpreter is known as cmd.exe. Running a batch file is a simple matter of just clicking on it. Batch files can also be run in a command prompt or the Start-Run line. In such case, the full path name must be used unless the file's path is in the path environment. Following is a simple example of a Batch Script. This Batch Script when run deletes all files in the current directory. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR This chapter explains the environment related to Batch Script. Writing and ExecutingTypically, to create a batch file, notepad is used. This is the simplest tool for creation of batch files. Next is the execution environment for the batch scripts. On Windows systems, this is done via the command prompt or cmd.exe. All batch files are run in this environment. Following are the different ways to launch cmd.exe − Method 1 − Go to C:\Windows\System32 and double click on the cmd file. Method 2 − Via the run command – The following snapshot shows to find the command prompt(cmd.exe) on Windows server 2012. Once the cmd.exe is launched, you will be presented with the following screen. This will be your environment for executing your batch scripts. Environment VariablesIn order to run batch files from the command prompt, you either need to go to the location to where the batch file is stored or alternatively you can enter the file location in the path environment variable. Thus assuming that the batch file is stored in the location :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR10, you would need to follow these instructions for the PATH variable inclusion.OSOutputWindowsAppend the String; :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR10 to the end of the system variable PATH. In this chapter, we will look at some of the frequently used batch commands. S.NoCommands & Description1VERThis batch command shows the version of MS-DOS you are using. 2ASSOCThis is a batch command that associates an extension with a file type (FTYPE), displays existing associations, or deletes an association. 3CDThis batch command helps in making changes to a different directory, or displays the current directory. 4CLSThis batch command clears the screen. 5COPYThis batch command is used for copying files from one location to the other. 6DELThis batch command deletes files and not directories. 7DIRThis batch command lists the contents of a directory. 8DATEThis batch command help to find the system date. 9ECHOThis batch command displays messages, or turns command echoing on or off. 10EXITThis batch command exits the DOS console. 11MDThis batch command creates a new directory in the current location. 12MOVEThis batch command moves files or directories between directories. 13PATHThis batch command displays or sets the path variable. 14PAUSEThis batch command prompts the user and waits for a line of input to be entered. 15PROMPTThis batch command can be used to change or reset the cmd.exe prompt. 16RDThis batch command removes directories, but the directories need to be empty before they can be removed. 17RENRenames files and directories 18REMThis batch command is used for remarks in batch files, preventing the content of the remark from being executed. 19STARTThis batch command starts a program in new window, or opens a document. 20TIMEThis batch command sets or displays the time. 21TYPEThis batch command prints the content of a file or files to the output. 22VOLThis batch command displays the volume labels. 23ATTRIBDisplays or sets the attributes of the files in the curret directory 24CHKDSKThis batch command checks the disk for any problems. 25CHOICEThis batch command provides a list of options to the user. 26CMDThis batch command invokes another instance of command prompt. 27COMPThis batch command compares 2 files based on the file size. 28CONVERTThis batch command converts a volume from FAT16 or FAT32 file system to NTFS file system. 29DRIVERQUERYThis batch command shows all installed device drivers and their properties. 30EXPANDThis batch command extracts files from compressed .cab cabinet files. 31FINDThis batch command searches for a string in files or input, outputting matching lines. 32FORMATThis batch command formats a disk to use Windows-supported file system such as FAT, FAT32 or NTFS, thereby overwriting the previous content of the disk. 33HELPThis batch command shows the list of Windows-supplied commands. 34IPCONFIGThis batch command displays Windows IP Configuration. Shows configuration by connection and the name of that connection. 35LABELThis batch command adds, sets or removes a disk label. 36MOREThis batch command displays the contents of a file or files, one screen at a time. 37NETProvides various network services, depending on the command used. 38PINGThis batch command sends ICMP/IP "echo" packets over the network to the designated address. 39SHUTDOWNThis batch command shuts down a computer, or logs off the current user. 40SORTThis batch command takes the input from a source file and sorts its contents alphabetically, from A to Z or Z to A. It prints the output on the console. 41SUBSTThis batch command assigns a drive letter to a local folder, displays current assignments, or removes an assignment. 42SYSTEMINFOThis batch command shows configuration of a computer and its operating system. 43TASKKILLThis batch command ends one or more tasks. 44TASKLISTThis batch command lists tasks, including task name and process id (PID). 45XCOPYThis batch command copies files and directories in a more advanced way. 46TREEThis batch command displays a tree of all subdirectories of the current directory to any level of recursion or depth. 47FCThis batch command lists the actual differences between two files. 48DISKPARTThis batch command shows and configures the properties of disk partitions. 49TITLEThis batch command sets the title displayed in the console window. 50SETDisplays the list of environment variables on the current system. In this chapter, we will learn how to create, save, execute, and modify batch files. Creating Batch FilesBatch files are normally created in notepad. Hence the simplest way is to open notepad and enter the commands required for the script. For this exercise, open notepad and enter the following statements. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR Saving Batch FilesAfter your batch file is created, the next step is to save your batch file. Batch files have the extension of either .bat or .cmd. Some general rules to keep in mind when naming batch files −
The above screenshot shows how to save the batch file. When saving your batch file a few points to keep in mind.
Executing Batch FilesFollowing are the steps to execute a batch file −
Modifying Batch FilesFollowing are the steps for modifying an existing batch file.
Normally, the first line in a batch file often consists of the following command. ECHO Command@echo off By default, a batch file will display its command as it runs. The purpose of this first command is to turn off this display. The command "echo off" turns off the display for the whole script, except for the "echo off" command itself. The "at" sign "@" in front makes the command apply to itself as well. DocumentationVery often batch files also contains lines that start with the "Rem" command. This is a way to enter comments and documentation. The computer ignores anything on a line following Rem. For batch files with increasing amount of complexity, this is often a good idea to have comments. First Batch Script ProgramLet’s construct our simple first batch script program. Open notepad and enter the following lines of code. Save the file as “List.cmd”. The code does the following −
@echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed" When the above command is executed, the names of the files in C:\Program Files will be sent to the file C:\Lists.txt and in the command prompt the message “The program has completed” will be displayed. There are two types of variables in batch files. One is for parameters which can be passed when the batch file is called and the other is done via the set command. Command Line ArgumentsBatch scripts support the concept of command line arguments wherein arguments can be passed to the batch file when invoked. The arguments can be called from the batch files through the variables %1, %2, %3, and so on. The following example shows a batch file which accepts 3 command line arguments and echo’s them to the command line screen. @echo off echo %1 echo %2 echo %3 If the above batch script is stored in a file called test.bat and we were to run the batch as Test.bat 1 2 3 Following is a screenshot of how this would look in the command prompt when the batch file is executed. The above command produces the following output. 1 2 3 If we were to run the batch as Example 1 2 3 4 The output would still remain the same as above. However, the fourth parameter would be ignored. Set CommandThe other way in which variables can be initialized is via the ‘set’ command. Following is the syntax of the set command. Syntaxset /A variable-name=value where,
The following example shows a simple way the set command can be used. Example@echo off set message=Hello World echo %message%
OutputThe above command produces the following output. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR0 Working with Numeric ValuesIn batch script, it is also possible to define a variable to hold a numeric value. This can be done by using the /A switch. The following code shows a simple way in which numeric values can be set with the /A switch. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR1
The output of the above program would be 15. All of the arithmetic operators work in batch files. The following example shows arithmetic operators can be used in batch files. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR2 The above command produces the following output. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR3 Local vs Global VariablesIn any programming language, there is an option to mark variables as having some sort of scope, i.e. the section of code on which they can be accessed. Normally, variable having a global scope can be accessed anywhere from a program whereas local scoped variables have a defined boundary in which they can be accessed. DOS scripting also has a definition for locally and globally scoped variables. By default, variables are global to your entire command prompt session. Call the SETLOCAL command to make variables local to the scope of your script. After calling SETLOCAL, any variable assignments revert upon calling ENDLOCAL, calling EXIT, or when execution reaches the end of file (EOF) in your script. The following example shows the difference when local and global variables are set in the script. Example:: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR4 Few key things to note about the above program.
OutputThe above command produces the following output. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR5 You will notice that the command echo %var% will not yield anything because after the ENDLOCAL statement, the ‘var’ variable will no longer exist. Working with Environment VariablesIf you have variables that would be used across batch files, then it is always preferable to use environment variables. Once the environment variable is defined, it can be accessed via the % sign. The following example shows how to see the JAVA_HOME defined on a system. The JAVA_HOME variable is a key component that is normally used by a wide variety of applications. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR6 The output would show the JAVA_HOME directory which would depend from system to system. Following is an example of an output. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR7 It’s always a good practice to add comments or documentation for the scripts which are created. This is required for maintenance of the scripts to understand what the script actually does. For example, consider the following piece of code which has no form of comments. If any average person who has not developed the following script tries to understand the script, it would take a lot of time for that person to understand what the script actually does. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR8 Comments Using the Rem StatementThere are two ways to create comments in Batch Script; one is via the Rem command. Any text which follows the Rem statement will be treated as comments and will not be executed. Following is the general syntax of this statement. Syntax:: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR9 where ‘Remarks’ is the comments which needs to be added. The following example shows a simple way the Rem command can be used. Example@echo off0 OutputThe above command produces the following output. You will notice that the line with the Rem statement will not be executed. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR0 Comments Using the :: StatementThe other way to create comments in Batch Script is via the :: command. Any text which follows the :: statement will be treated as comments and will not be executed. Following is the general syntax of this statement. Syntax@echo off2 where ‘Remarks’ is the comment which needs to be added. The following example shows a simple way the Rem command can be used. Example@echo off3 OutputThe above command produces the following output. You will notice that the line with the :: statement will not be executed. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR0 Note − If you have too many lines of Rem, it could slow down the code, because in the end each line of code in the batch file still needs to be executed. Let’s look at the example of the large script we saw at the beginning of this topic and see how it looks when documentation is added to it. @echo off5 You can now see that the code has become more understandable to users who have not developed the code and hence is more maintainable. In DOS, a string is an ordered collection of characters, such as "Hello, World!". S.NoStrings & Description1Create StringA string can be created in DOS in the following way. 2Empty StringEmpty String 3String InterpolationString interpolation is a way to construct a new String value from a mix of constants, variables, literals, and expressions by including their values inside a string literal. 4String ConcatenationYou can use the set operator to concatenate two strings or a string and a character, or two characters. Following is a simple example which shows how to use string concatenation. 5String lengthIn DOS scripting, there is no length function defined for finding the length of a string. There are custom-defined functions which can be used for the same. Following is an example of a custom-defined function for seeing the length of a string. 6toIntA variable which has been set as string using the set variable can be converted to an integer using the /A switch which is using the set variable. The following example shows how this can be accomplished. 7Align RightThis used to align text to the right, which is normally used to improve readability of number columns. 8Left StringThis is used to extract characters from the beginning of a string. 9Mid StringThis is used to extract a substring via the position of the characters in the string. 10RemoveThe string substitution feature can also be used to remove a substring from another string. 11Remove Both EndsThis is used to remove the first and the last character of a string. 12Remove All SpacesThis is used to remove all spaces in a string via substitution. 13Replace a StringTo replace a substring with another string use the string substitution feature. 14Right StringThis is used to extract characters from the end of a string. Arrays are not specifically defined as a type in Batch Script but can be implemented. The following things need to be noted when arrays are implemented in Batch Script.
Creating an ArrayAn array is created by using the following set command. @echo off6 Where 0 is the index of the array and 1 is the value assigned to the first element of the array. Another way to implement arrays is to define a list of values and iterate through the list of values. The following example show how this can be implemented. Example@echo off7 OutputThe above command produces the following output. @echo off8 Accessing ArraysYou can retrieve a value from the array by using subscript syntax, passing the index of the value you want to retrieve within square brackets immediately after the name of the array. Example@echo off9 In this example, the index starts from 0 which means the first element can be accessed using index as 0, the second element can be accessed using index as 1 and so on. Let's check the following example to create, initialize and access arrays − @echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed"0 The above command produces the following output. @echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed"1 Modifying an ArrayTo add an element to the end of the array, you can use the set element along with the last index of the array element. Example@echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed"2 The above command produces the following output. @echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed"3 You can modify an existing element of an Array by assigning a new value at a given index as shown in the following example − @echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed"4 The above command produces the following output. @echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed"5 Iterating Over an ArrayIterating over an array is achieved by using the ‘for’ loop and going through each element of the array. The following example shows a simple way that an array can be implemented. @echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed"6 Following things need to be noted about the above program −
OutputThe above command produces the following output. @echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed"7 Length of an ArrayThe length of an array is done by iterating over the list of values in the array since there is no direct function to determine the number of elements in an array. @echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed"8 OutputOutput The above command produces the following output. @echo off Rem This is for listing down all the files in the directory Program files dir "C:\Program Files" > C:\lists.txt echo "The program has completed"9 Creating Structures in ArraysStructures can also be implemented in batch files using a little bit of an extra coding for implementation. The following example shows how this can be achieved. Example@echo off echo %1 echo %2 echo %30 The following key things need to be noted about the above code.
OutputThe above command produces the following output. @echo off echo %1 echo %2 echo %31 Decision-making structures require that the programmer specify one or more conditions to be evaluated or tested by the program, along with a statement or statements to be executed if the condition is determined to be true, and optionally, other statements to be executed if the condition is determined to be false. S.NoStrings & Description1If StatementThe first decision-making statement is the ‘if’ statement. 2If/else StatementThe next decision making statement is the If/else statement. Following is the general form of this statement. 3Nested If StatementsSometimes, there is a requirement to have multiple ‘if’ statement embedded inside each other. Following is the general form of this statement. An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations. In batch script, the following types of operators are possible.
Arithmetic OperatorsBatch script language supports the normal Arithmetic operators as any language. Following are the Arithmetic operators available. Show Example OperatorDescriptionExample+Addition of two operands1 + 2 will give 3−Subtracts second operand from the first2 − 1 will give 1*Multiplication of both operands2 * 2 will give 4/Division of the numerator by the denominator3 / 2 will give 1.5%Modulus operator and remainder of after an integer/float division3 % 2 will give 1Relational OperatorsRelational operators allow of the comparison of objects. Below are the relational operators available. Show Example OperatorDescriptionExampleEQUTests the equality between two objects2 EQU 2 will give trueNEQTests the difference between two objects3 NEQ 2 will give trueLSSChecks to see if the left object is less than the right operand2 LSS 3 will give trueLEQChecks to see if the left object is less than or equal to the right operand2 LEQ 3 will give trueGTRChecks to see if the left object is greater than the right operand3 GTR 2 will give trueGEQChecks to see if the left object is greater than or equal to the right operand3 GEQ 2 will give trueLogical OperatorsLogical operators are used to evaluate Boolean expressions. Following are the logical operators available. The batch language is equipped with a full set of Boolean logic operators like AND, OR, XOR, but only for binary numbers. Neither are there any values for TRUE or FALSE. The only logical operator available for conditions is the NOT operator. Show Example OperatorDescriptionANDThis is the logical “and” operatorORThis is the logical “or” operatorNOTThis is the logical “not” operatorAssignment OperatorsBatch Script language also provides assignment operators. Following are the assignment operators available. Show Example OperatorDescriptionExample+=This adds right operand to the left operand and assigns the result to left operandSet /A a = 5 a += 3 Output will be 8 -=This subtracts the right operand from the left operand and assigns the result to the left operandSet /A a = 5 a -= 3 Output will be 2 *=This multiplies the right operand with the left operand and assigns the result to the left operandSet /A a = 5 a *= 3 Output will be 15 /=This divides the left operand with the right operand and assigns the result to the left operandSet /A a = 6 a/ = 3 Output will be 2 %=This takes modulus using two operands and assigns the result to the left operandSet /A a = 5 a% = 3 Output will be 2 Bitwise OperatorsBitwise operators are also possible in batch script. Following are the operators available. Show Example OperatorDescription&This is the bitwise “and” operator|This is the bitwise “or” operator^This is the bitwise “xor” or Exclusive or operatorFollowing is the truth table showcasing these operators. pqp & qp | qp ^ q00000010111111010011The date and time in DOS Scripting have the following two basic commands for retrieving the date and time of the system. DATEThis command gets the system date. Syntax@echo off echo %1 echo %2 echo %32 Example@echo off echo %1 echo %2 echo %33 OutputThe current date will be displayed in the command prompt. For example, @echo off echo %1 echo %2 echo %34 TIMEThis command sets or displays the time. Syntax@echo off echo %1 echo %2 echo %35 Example@echo off echo %1 echo %2 echo %36 OutputThe current system time will be displayed. For example, @echo off echo %1 echo %2 echo %37 Following are some implementations which can be used to get the date and time in different formats. Date in Format Year-Month-DayExample@echo off echo %1 echo %2 echo %38 OutputThe above command produces the following output. @echo off echo %1 echo %2 echo %39 There are three universal “files” for keyboard input, printing text on the screen and printing errors on the screen. The “Standard In” file, known as stdin, contains the input to the program/script. The “Standard Out” file, known as stdout, is used to write output for display on the screen. Finally, the “Standard Err” file, known as stderr, contains any error messages for display on the screen. Each of these three standard files, otherwise known as the standard streams, are referenced using the numbers 0, 1, and 2. Stdin is file 0, stdout is file 1, and stderr is file 2. Redirecting Output (Stdout and Stderr)One common practice in batch files is sending the output of a program to a log file. The > operator sends, or redirects, stdout or stderr to another file. The following example shows how this can be done. Test.bat 1 2 30 In the above example, the stdout of the command Dir C:\ is redirected to the file list.txt. If you append the number 2 to the redirection filter, then it would redirect the stderr to the file lists.txt. Test.bat 1 2 31 One can even combine the stdout and stderr streams using the file number and the ‘&’ prefix. Following is an example. Test.bat 1 2 32 Suppressing Program OutputThe pseudo file NUL is used to discard any output from a program. The following example shows that the output of the command DIR is discarded by sending the output to NUL. Test.bat 1 2 33 StdinTo work with the Stdin, you have to use a workaround to achieve this. This can be done by redirecting the command prompt’s own stdin, called CON. The following example shows how you can redirect the output to a file called lists.txt. After you execute the below command, the command prompt will take all the input entered by user till it gets an EOF character. Later, it sends all the input to the file lists.txt. Test.bat 1 2 34 By default when a command line execution is completed it should either return zero when execution succeeds or non-zero when execution fails. When a batch script returns a non-zero value after the execution fails, the non-zero value will indicate what is the error number. We will then use the error number to determine what the error is about and resolve it accordingly. Following are the common exit code and their description. Error CodeDescription0Program successfully completed.1Incorrect function. Indicates that Action has attempted to execute non-recognized command in Windows command prompt cmd.exe.2The system cannot find the file specified. Indicates that the file cannot be found in specified location.3The system cannot find the path specified. Indicates that the specified path cannot be found.5Access is denied. Indicates that user has no access right to specified resource.9009 0x2331 Program is not recognized as an internal or external command, operable program or batch file. Indicates that command, application name or path has been misspelled when configuring the Action.221225495 0xC0000017 -1073741801 Not enough virtual memory is available. It indicates that Windows has run out of memory. 3221225786 0xC000013A -1073741510 The application terminated as a result of a CTRL+C. Indicates that the application has been terminated either by the user's keyboard input CTRL+C or CTRL+Break or closing command prompt window.3221225794 0xC0000142 -1073741502 The application failed to initialize properly. Indicates that the application has been launched on a Desktop to which the current user has no access rights. Another possible cause is that either gdi32.dll or user32.dll has failed to initialize.Error LevelThe environmental variable %ERRORLEVEL% contains the return code of the last executed program or script. By default, the way to check for the ERRORLEVEL is via the following code. SyntaxTest.bat 1 2 35 It is common to use the command EXIT /B %ERRORLEVEL% at the end of the batch file to return the error codes from the batch file. EXIT /B at the end of the batch file will stop execution of a batch file. Use EXIT /B < exitcodes > at the end of the batch file to return custom return codes. Environment variable %ERRORLEVEL% contains the latest errorlevel in the batch file, which is the latest error codes from the last command executed. In the batch file, it is always a good practice to use environment variables instead of constant values, since the same variable get expanded to different values on different computers. Let’s look at a quick example on how to check for error codes from a batch file. ExampleLet’s assume we have a batch file called Find.cmd which has the following code. In the code, we have clearly mentioned that we if don’t find the file called lists.txt then we should set the errorlevel to 7. Similarly, if we see that the variable userprofile is not defined then we should set the errorlevel code to 9. Test.bat 1 2 36 Let’s assume we have another file called App.cmd that calls Find.cmd first. Now, if the Find.cmd returns an error wherein it sets the errorlevel to greater than 0 then it would exit the program. In the following batch file, after calling the Find.cnd find, it actually checks to see if the errorlevel is greater than 0. Test.bat 1 2 37 OutputIn the above program, we can have the following scenarios as the output −
LoopsIn the decision making chapter, we have seen statements which have been executed one after the other in a sequential manner. Additionally, implementations can also be done in Batch Script to alter the flow of control in a program’s logic. They are then classified into flow of control statements. S.NoLoops & Description1While Statement ImplementationThere is no direct while statement available in Batch Script but we can do an implementation of this loop very easily by using the if statement and labels. 2For Statement - List ImplementationsThe "FOR" construct offers looping capabilities for batch files. Following is the common construct of the ‘for’ statement for working with a list of values. 3Looping through RangesThe ‘for’ statement also has the ability to move through a range of values. Following is the general form of the statement. 4Classic for Loop ImplementationFollowing is the classic ‘for’ statement which is available in most programming languages. Looping through Command Line ArgumentsThe ‘for’ statement can also be used for checking command line arguments. The following example shows how the ‘for’ statement can be used to loop through the command line arguments. ExampleTest.bat 1 2 38 OutputLet’s assume that our above code is stored in a file called Test.bat. The above command will produce the following output if the batch file passes the command line arguments of 1,2 and 3 as Test.bat 1 2 3. 1 2 3S.NoLoops & Description1Break Statement Implementation The break statement is used to alter the flow of control inside loops within any programming language. The break statement is normally used in looping constructs and is used to cause immediate termination of the innermost enclosing loop. A function is a set of statements organized together to perform a specific task. In batch scripts, a similar approach is adopted to group logical statements together to form a function. As like any other languages, functions in Batch Script follows the same procedure −
Function DefinitionIn Batch Script, a function is defined by using the label statement. When a function is newly defined, it may take one or several values as input 'parameters' to the function, process the functions in the main body, and pass back the values to the functions as output 'return types'. Every function has a function name, which describes the task that the function performs. To use a function, you "call" that function with its name and pass its input values (known as arguments) that matches the types of the function's parameters. Following is the syntax of a simple function. 1 2 30
Following is an example of a simple function. Example1 2 31S.NoFunctions & Description1Calling a Function A function is called in Batch Script by using the call command. 2Functions with ParametersFunctions can work with parameters by simply passing them when a call is made to the function. 3Functions with Return ValuesFunctions can work with return values by simply passing variables names 4Local Variables in FunctionsLocal variables in functions can be used to avoid name conflicts and keep variable changes local to the function. 5Recursive FunctionsThe ability to completely encapsulate the body of a function by keeping variable changes local to the function and invisible to the caller. 6File I/OIn Batch Script, it is possible to perform the normal file I/O operations that would be expected in any programming language. 7Creating FilesThe creation of a new file is done with the help of the redirection filter >. This filter can be used to redirect any output to a file. 8Writing to FilesContent writing to files is also done with the help of the redirection filter >. This filter can be used to redirect any output to a file. 9Appending to FilesContent writing to files is also done with the help of the double redirection filter >>. This filter can be used to append any output to a file. 10Reading from FilesReading of files in a batch script is done via using the FOR loop command to go through each line which is defined in the file that needs to be read. 11Deleting FilesFor deleting files, Batch Script provides the DEL command. 12Renaming FilesFor renaming files, Batch Script provides the REN or RENAME command. 13Moving FilesFor moving files, Batch Script provides the MOVE command. 14Batch Files – PipesThe pipe operator (|) takes the output (by default, STDOUT) of one command and directs it into the input (by default, STDIN) of another command. 15Batch Files – InputsWhen a batch file is run, it gives you the option to pass in command line parameters which can then be read within the program for further processing. 16Using the SHIFT OperatorOne of the limitations of command line arguments is that it can accept only arguments till %9. Let’s take an example of this limitation. 17FoldersIn Batch Script, it is possible to perform the normal folder based operations that would be expected in any programming language. 18Creating FoldersThe creation of a folder is done with the assistance of the MD (Make directory) command. 19Listing Folder ContentsThe listing of folder contents can be done with the dir command. This command allows you to see the available files and directories in the current directory. 20Deleting FoldersFor deleting folders, Batch Scripting provides the DEL command. 21Renaming FoldersFor renaming folders, Batch Script provides the REN or RENAME command. 22Moving FoldersFor moving folders, Batch Script provides the MOVE command. In this chapter, we will discuss the various processes involved in Batch Script. Viewing the List of Running ProcessesIn Batch Script, the TASKLIST command can be used to get the list of currently running processes within a system. Syntax1 2 32 S.No.Options & Description1. /S system Specifies the remote system to connect to 2./U [domain\]user Specifies the user context under which the command should execute. 3./P [password] Specifies the password for the given user context. Prompts for input if omitted. 4./M [module] Lists all tasks currently using the given exe/dll name. If the module name is not specified all loaded modules are displayed. 5./SVC Displays services hosted in each process. 6./V Displays verbose task information. 7./FI filter Displays a set of tasks that match a given criteria specified by the filter. 8./FO format Specifies the output format. Valid values: "TABLE", "LIST", "CSV". 9./NH Specifies that the "Column Header" should not show in the output. Valid only for "TABLE" and "CSV" formats. Examples1 2 33 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. 1 2 34 1 2 35 The above command takes the output displayed by tasklist and saves it to the process.txt file. 1 2 36 The above command will only fetch those processes whose memory is greater than 40MB. Following is a sample output that can be rendered. 1 2 37 Killing a Particular ProcessAllows 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. Syntax1 2 38 S.No.Options & Description1. /S system Specifies the remote system to connect to 2./U [domain\]user Specifies the user context under which the command should execute. 3./P [password] Specifies the password for the given user context. Prompts for input if omitted. 4./FI FilterName Applies a filter to select a set of tasks. Allows "*" to be used. ex. imagename eq acme* See below filters for additional information and examples. 5./PID processID Specifies the PID of the process to be terminated. Use TaskList to get the PID. 6./IM ImageName Specifies the image name of the process to be terminated. Wildcard '*' can be used to specify all tasks or image names. 7./T Terminates the specified process and any child processes which were started by it. 8./F Specifies to forcefully terminate the process(es). Examples1 2 39 The above command kills the open notepad task, if open. Example 1 2 3 40 The above command kills a process which has a process of 9214. Starting a New ProcessDOS scripting also has the availability to start a new process altogether. This is achieved by using the START command. SyntaxExample 1 2 3 41 Wherein
S.No.Options & Description1. /MIN Start window Minimized 2./MAX Start window maximized. 3./LOW Use IDLE priority class. 4./NORMAL Use NORMAL priority class. 5./ABOVENORMAL Use ABOVENORMAL priority class. 6./BELOWNORMAL Use BELOWNORMAL priority class. 7./HIGH Use HIGH priority class. 8./REALTIME Use REALTIME priority class. ExamplesExample 1 2 3 42 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”. Example 1 2 3 43 The above command will actually run Microsoft word in another process and then open the file TESTA.txt in MS Word. 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. Example 1 2 3 44 Suppose if we were to create a shortcut to this command as follows. Example 1 2 3 45 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 AliasAlias are managed by using the doskey command. SyntaxExample 1 2 3 46 Wherein
Following are the description of the options which can be presented to the DOSKEY command. S.No.Options & Description1./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. ExampleCreate 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. Example 1 2 3 47 Once you execute the command, you will able to run these aliases in the command prompt. OutputThe 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 AliasAn alias or macro can be deleted by setting the value of the macro to NULL. ExampleExample 1 2 3 48 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 AliasAn alias or macro can be replaced by setting the value of the macro to the new desired value. ExampleExample 1 2 3 49 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. Windows now has an improved library which can be used in Batch Script for working with devices attached to the system. This is known as the device console – DevCon.exe. Windows driver developers and testers can use DevCon to verify that a driver is installed and configured correctly, including the proper INF files, driver stack, driver files, and driver package. You can also use the DevCon commands (enable, disable, install, start, stop, and continue) in scripts to test the driver. DevCon is a command-line tool that performs device management functions on local computers and remote computers. Display driver and device info DevCon can display the following properties of drivers and devices on local computers, and remote computers (running Windows XP and earlier) −
DevCon (DevCon.exe) is included when you install the WDK, Visual Studio, and the Windows SDK for desktop apps. DevCon.exe kit is available in the following locations when installed. set /A variable-name=value0 Syntaxset /A variable-name=value1 wherein
ExamplesFollowing are some examples on how the DevCon command is used. set /A variable-name=value2 The following command uses the DevCon DriverFiles operation to list the file names of drivers that devices on the system use. The command uses the wildcard character (*) to indicate all devices on the system. Because the output is extensive, the command uses the redirection character (>) to redirect the output to a reference file, driverfiles.txt. set /A variable-name=value3 The following command uses the DevCon status operation to find the status of all devices on the local computer. It then saves the status in the status.txt file for logging or later review. The command uses the wildcard character (*) to represent all devices and the redirection character (>) to redirect the output to the status.txt file. set /A variable-name=value4 The following command enables all printer devices on the computer by specifying the Printer setup class in a DevCon Enable command. The command includes the /r parameter, which reboots the system if it is necessary to make the enabling effective. set /A variable-name=value5 The following command uses the DevCon Install operation to install a keyboard device on the local computer. The command includes the full path to the INF file for the device (keyboard.inf) and a hardware ID (*PNP030b). set /A variable-name=value6 The following command will scan the computer for new devices. set /A variable-name=value7 The following command will rescan the computer for new devices. set /A variable-name=value8 The Registry is one of the key elements on a windows system. It contains a lot of information on various aspects of the operating system. Almost all applications installed on a windows system interact with the registry in some form or the other. The Registry contains two basic elements: keys and values. Registry keys are container objects similar to folders. Registry values are non-container objects similar to files. Keys may contain values or further keys. Keys are referenced with a syntax similar to Windows' path names, using backslashes to indicate levels of hierarchy. This chapter looks at various functions such as querying values, adding, deleting and editing values from the registry. Batch script has the facility to work with network settings. The NET command is used to update, fix, or view the network or network settings. This chapter looks at the different options available for the net command. S.NoNET Commands & Description1NET ACCOUNTSView the current password & logon restrictions for the computer. 2NET CONFIGDisplays your current server or workgroup settings. 3NET COMPUTERAdds or removes a computer attached to the windows domain controller. 4NET USERThis command can be used for the following View the details of a particular user account. 5NET STOP/STARTThis command is used to stop and start a particular service. 6NET STATISTICSDisplay network statistics of the workstation or server. 7NET USEConnects or disconnects your computer from a shared resource or displays information about your connections. Printing can also be controlled from within Batch Script via the NET PRINT command. Syntaxset /A variable-name=value9 Where /D:device - Specifies a print device. Example@echo off set message=Hello World echo %message%0 The above command will print the example.txt file to the parallel port lpt1. Command Line Printer ControlAs of Windows 2000, many, but not all, printer settings can be configured from Windows's command line using PRINTUI.DLL and RUNDLL32.EXE Syntax@echo off set message=Hello World echo %message%1 Where some of the options available are the following −
Testing if a Printer ExistsThere can be cases wherein you might be connected to a network printer instead of a local printer. In such cases, it is always beneficial to check if a printer exists in the first place before printing. The existence of a printer can be evaluated with the help of the RUNDLL32.EXE PRINTUI.DLL which is used to control most of the printer settings. Example@echo off set message=Hello World echo %message%2 The above command will do the following −
Debugging a batch script becomes important when you are working on a big complex batch script. Following are the ways in which you can debug the batch file. Using echo commandA very simple debug option is to make use of echo command in your batch script wherever possible. It will display the message in the command prompt and help you debug where things have gone wrong. Here is a simple example that displays even numbers based on the input given. The echo command is used to display the result and also if the input is not given. Similarly, the echo command can be used in place when you think that the error can happen. For example, if the input given is a negative number, less than 2, etc. Example@echo off set message=Hello World echo %message%3 Output@echo off set message=Hello World echo %message%4 Using pause commandAnother way is to pause the batch execution when there is an error. When the script is paused, the developer can fix the issue and restart the processing. In the example below, the batch script is paused as the input value is mandatory and not provided. Example@echo off set message=Hello World echo %message%5 Output@echo off set message=Hello World echo %message%6 Logging the error messages to another fileIt might get hard to debug the error just looking at a bunch of echo displayed on the command prompt. Another easy way out is to log those messages in another file and view it step by step to understand what went wrong. Here is an example, consider the following test.bat file: @echo off set message=Hello World echo %message%7 The command given in the .bat file is wrong. Let us log the message and see what we get. Execute the following command in your command line: @echo off set message=Hello World echo %message%8 The file testerrors.txt will display the error messages as shown below: @echo off set message=Hello World echo %message%9 Looking at the above file the developer can fix the program and execute again. Using ErrorLevel to detect errors and log themErrorlevel returns 0 if the command executes successfully and 1 if it fails. Consider the following example: :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR00 During execution, you can see errors as well as logs: :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR01 testlog.txt :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR02 In case of failure, you will see the following logs inside testlog.txt. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR03 Logging in is possible in Batch Script by using the redirection command. Syntax:: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR04 ExampleCreate a file called test.bat and enter the following command in the file. :: Deletes All files in the Current Directory With Prompts and Warnings ::(Hidden, System, and Read-Only Files are Not Affected) :: @ECHO OFF DEL . DR05 The above command has an error because the option to the net statistics command is given in the wrong way. What is the DOS window in detail?It is a character-based interface system where all commands are entered in text at the command-line prompt. Management. A disk operating system can manage a computer's files, I/O system and its memory.
What is meant by DOS operating system?A disk operating system (abbreviated DOS) is a computer operating system that resides on and can use a disk storage device, such as a floppy disk, hard disk drive, or optical disc. A disk operating system must provide a file system for organizing, reading, and writing files on the storage disk.
What is MSMS-DOS is one of the oldest and widely used operating system. DOS is a set of computer programs, the major functions of which are file management, allocation of system resources, providing essential features to control hardware devices. DOS commands can be typed in either upper case or lower case.
What Linux command displays the current working directory quizlet?The pwd command allows you to know the directory in which you're located (pwd stands for "print working directory"). For example, pwd in the desktop directory will show ~/Desktop.
|