Prerequisites
- Computer programming knowledge.- Windows command line commands basics.
What is Windows Command Prompt | Command Line | Command Shell | cmd | cmd.exe | Command Line Interpreter?
Command prompt is an executable windows application which is available on most of the operating systems. It supports a list of windows commands. Command line interface helps in performing windows operations like creating/deleting/renaming/copying/moving folders or files, open files or applications etc.What is a batch file?
A batch file or a batch script or batch job is a file which contains the list or collection of commands which will execute sequentially from top to bottom in command window. In windows operating system a batch file stored with an extension *.bat.Batch scripting advantages
- Run multiple processes at a time
- Perform repetitive tasks
- Back up files
- Easy to manage large processes
- Saves time by running collection of commands
- Can call one batch from another batch
- Supports the user inputs as an arguments
- Publishing applications
- Supports all the windows command line commands
- Can work with git commands (git installation required)
- Perform repetitive tasks
- Back up files
- Easy to manage large processes
- Saves time by running collection of commands
- Can call one batch from another batch
- Supports the user inputs as an arguments
- Publishing applications
- Supports all the windows command line commands
- Can work with git commands (git installation required)
In this tutorial you will be introduced with the basic batch scripting commands.
Batch file commands
ECHO
@ECHO [ON/OFF] - sets the command-line settings. ON - Displays the executing commands on command window, OFF - won't displays the commands on window.
ECHO [Text] - Print text to the screen)
ECHO. - Print an empty line to the screen
ECHO - Displays the current setting of the command-line
ECHO [Text] - Print text to the screen)
ECHO. - Print an empty line to the screen
ECHO - Displays the current setting of the command-line
PAUSE
Stops the commands execution and wait for any key press.
REM
Adds comment in script file.
Example:
REM comment details will goes here
REM comment details will goes here
EXIT
Terminates execution and closes the command window.
Variables
Variable can be initialized with SET command.
Syntax: SET [/A] [variable-name]=value
/A - If the value needs to be numeric
String variable:
SET employeeName="Srinubabu Ravilla"
ECHO %employeeName%
ECHO %employeeName%
The above script will print the "Srinubabu Ravilla" on screen. Variable
can be accessed by surrounding with the %% as shown above.
String concatination:
SET employeeFirstName=Srinubabu
SET employeeLastName=Ravilla
ECHO %employeeFirstName%+%employeeLastName%
ECHO %employeeFirstName%+%employeeLastName%
The above script will print the "Srinubabu Ravilla" on screen by
combining both first name and last name variables.
Numeric variables:
SET /A employeeFixedPay=500000
SET /A employeeVariablePay=100000
ECHO Employee total salary: %employeeFixedPay% + %employeeVariablePay%
ECHO Employee total salary: %employeeFixedPay% + %employeeVariablePay%
The above script prints the "Employee total salary:600000 " on screen.
Prompt user for input:
SET /p userInput=Enter employee name:
ECHO User input: "%userInput%"
The above script prints the user entered input on screen.
Escape sequence
Most special characters can be escaped using the caret (^) below are the
list of characters that can be escaped.
ECHO Mobile number format ^<Country-Code^>^<10-digit-numeric-value^>
The above script will print "Mobile number format
<Country-Code><10-digit-numeric-value>"
Directories
Get the current batch script execution directory:
An environment variable CD stores the current command directory
ECHO Current directory: %CD%
An environment variable CD stores the current command directory
ECHO Current directory: %CD%
Windows commands can be utilize in the batch scripting. Below are the few
examples.
Change from one directory to another:
cd /d c:
cd /d c:
Navigate to another directory by directory path:
SET folderPath=C:\Users - Manual path
CD %folderPath% - With path from variable
Create a new folder:
md "NewFolder1234" - Create folder in current directory
md "c:\Users\sravilla\test123" - Create new folder in by path
md %directoryVariable% - Create directory from variable/user input
Open Folder:
%SystemRoot%\explorer.exe %FolderPath%
%SystemRoot%\explorer.exe "C:\Users"
Start
Start command can be used to start the program
START C:\Users - Opens the directory
start notepad.exe - Opens notepad
START https://dotnetcookie.blogspot.com/ - Opens the URL in default browser
START mailto:srinubabu.ravilla@gmail.com - Creates a new email in mail application
START C:\Users - Opens the directory
start notepad.exe - Opens notepad
START https://dotnetcookie.blogspot.com/ - Opens the URL in default browser
START mailto:srinubabu.ravilla@gmail.com - Creates a new email in mail application
Loops
Unlike other programming languages batch scripting supports only for loop.
The definition of a loop is, statements execution repeats until
specified condition is satisfied.
Basic Syntax:
FOR %%variable_name IN list DO commands
list - List of any elements, separated by either spaces, comma's or semicolons.
command - Can be any internal or external command, batch file, list of commands.
%%variable_name - Variable declaration in loops is specified with %%variable_name instead of %variable_name%.
Looping through numbers
FOR %%x IN (1 2 3 4 5 6 3 2 1) DO Echo %%x
The above script prints all the numbers from starting to ending.
Looping through range of values
Batch scripting supports numeric range looping.
Syntax: FOR /L %%variable_name IN (LowerLimit, Increment, UpperLimit)
Do some_code
/L
- Specifies the loop suppose to iterate through the range of
values.
LowerLimit - The minimum numeric start value
Increment
- Numeric increment which adds to LowerLimit in each iteration
UpperLimit - The maximum value in a range to limit with
FOR /L %%Number_Variable IN (0, 2, 15) DO ECHO %%Number_Variable
The above script prints the range of values between 0 and 15 with the
increment of 2 in each iteration.
Output: 0,2,4,6,8,10,12,14
Loop through files
Batch script supports looping through the files in current directory. File
lookup (*.*) specified in the below command can support the wild card
search like (*.jpg).
for /r %%file_path in (*.*) do echo %%file_path
Looping through directories/folders
Batch script supports looping through the directories (Includes sub
directories) in current directory. Directory lookup ("*") specified in
the below command can support the wild card search like (*.jpg).
for %f in (.\*) do @echo %f - Files in current directory
for /D %s in (.\*) do @echo %s - Subdirs in current directory
for /R %f in (.\*) do @echo %f
- Files in current and all subdirectories
for /R /D %s in (.\*) do @echo %s - subdirs in current and all subdirectories