0% found this document useful (0 votes)
49 views

Loops in Batch Scripting Language

The document discusses different types of loops that can be used in batch scripting language. It covers the For loop, which iterates over a list of files or directories. It also covers the For /R loop to iterate recursively over subdirectories. The For /L loop iterates over a range of numbers, and the For /D loop iterates over subdirectories. Finally, it discusses the For /F loop, which reads file contents and allows tokenizing and parsing the text using options like delimiters.

Uploaded by

MITSom
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views

Loops in Batch Scripting Language

The document discusses different types of loops that can be used in batch scripting language. It covers the For loop, which iterates over a list of files or directories. It also covers the For /R loop to iterate recursively over subdirectories. The For /L loop iterates over a range of numbers, and the For /D loop iterates over subdirectories. Finally, it discusses the For /F loop, which reads file contents and allows tokenizing and parsing the text using options like delimiters.

Uploaded by

MITSom
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

6/23/2020 Loops in Batch Scripting Language

MENU

Loops in Batch Scripting Language

View more Tutorials:

Batch Scripting Language Tutorials

1- Overview of loops in Batch language


2- For Loop (Default)
3- For /R
4- For /D
5- For /L
6- For /F

1- Overview of loops in Batch language

Standard Delimiters

Space
Comma ( , )
Semi-colon ( ; )
TAB

2- For Loop (Default)


For loop (default) of Batch language is used to iterate over a list of files.

Syntax:

?
1 @rem set_of_files -  Set of Files
2 @rem Files separated by standard delimiters.
3 @rem The parameter name 'variable' must be 1 character
4  
5 FOR %%variable IN ( set_of_files ) DO command
6  
7 @rem Hoặc:
8  
9 FOR %%parameter IN ( set_of_files ) DO  (
10  
11      command
12 )

Example: copy some files into a directory (Note: the files to be copied into the target directory need to be in the same disk drive).

copyFiles.bat

?
1 @echo off
2  
https://o7planning.org/en/11623/loops-in-batch-scripting-language 1/11
6/23/2020 Loops in Batch Scripting Language
3 @rem Copy to same Disk
4  
5 FOR %%f IN (E:\test\file1.data  E:\test\file2.txt) DO  (
6     
7    echo Copying %%f
8    copy  %%f E:\backup
9 )
10  
11  
12 pause

Other example:

?
1 @rem The delimiter is a semicolon (;)
2 FOR %%f IN ("E:\my dir\file1.data" ; E:\test\file2.txt) DO copy %%f E:\backup
3  
4 @rem The delimiter is a comma ( , )
5 FOR %%f IN ("E:\my dir\file1.data" , E:\test\file2.txt) DO copy %%f E:\backup
6  
7 @rem The delimiter is a space.
8 FOR %%f IN ("E:\my dir\file1.data" E:\test\file2.txt) DO copy %%f E:\backup

3- For /R
The   FOR /R loop is used to iterate over the list of files, including files in subdirectories, grandchildren .. It is called Recurse loop.

Syntax:

?
1 FOR /R [path] %%variable IN ( set_of_file_filters ) DO command
2  
3 @rem Or:
4  
5 FOR /R [path] %%variable IN ( set_of_file_filters ) DO (
6  
7    command
8 )

[path] : This parameter is a root folder. If there is not this parameter  "the folder containing executable script file" hoặc
"current folder" will be considered as root folder .
set_of_file_filters : List of file filters, for example *.txt , *.bat, ... or dot ( . ) means all.
variable: means name of variable and must have one unique characte.

The following example prints the list of all *.txt  or  *.log  files in the C:/Windows/System32  directory  (Includes search in
subdirectories, grandchildren ..)

forR_example1.bat

?
1 @echo off
2  
3 FOR /R "C:\Windows\System32" %%f IN (*.txt *.log) DO  (
4     

https://o7planning.org/en/11623/loops-in-batch-scripting-language 2/11
6/23/2020 Loops in Batch Scripting Language
5    echo %%f
6 )
7  
8 pause
9

Example of listing all files in the  C:/Windows/System32 directory (including files in subdirectories, grandchildren ...)

forR_example2.bat

?
1 @echo off
2  
3  
4 FOR /R "C:\Windows\System32" %%f IN ( . ) DO  (
5     
6    echo %%f
7 )
8  
9 pause

4- For /D
The  FOR /D loop is used to iterate over the list of directories which are subdirectories of current directory.

Syntax:

?
1 FOR /D [/r] %%variable IN ( set_of_directory_filters ) DO command
2  
3 @rem Or:
4  
5 FOR /D [/r] %%parameter IN ( set_of_directory_filters ) DO  (
6  
7     command
8 )

set_of_directory_filters : List of directory filters for example,  en*, fr*,..  separated by a standard delimiter.
[/r]: This is a recurse parameter and not mandatory. If this parameter is available,  subdirectories, grandchildren .. will be
envolved in the loop. 
variable: means name of variable and must have a unique character.

Example: List subdirectories of  C:/Windows.

forD_example1.bat

https://o7planning.org/en/11623/loops-in-batch-scripting-language 3/11
6/23/2020 Loops in Batch Scripting Language
?
1 @echo off
2  
3 C:
4 cd C:/Windows
5  
6 FOR /D %%d IN ( * ) DO  (
7     
8    echo %%d
9 )
10  
11 pause

Example: List subdirectories,  grandchildren ... of the  C:/Windows with the name started by "en" or  "fr"

forD_example2.bat

?
1 @echo off
2  
3 C:
4 cd C:/Windows
5  
6 FOR /D /r %%d IN (en* fr*) DO  (
7    
8    echo %%d
9 )
10  
11 pause

5- For /L
For /R loop is used to iterate over a range of numbers.

Syntax:

?
1 FOR /L %%variable IN (start, step, end) DO command
2  
3 @rem Or:
4  
5 FOR /L %%variable IN (start, step, end) DO  (
6  
7      command
8 )

start: The first value of variable


step: After each iteration, variable value will be added 'step'.
end: Last value.

Example:

https://o7planning.org/en/11623/loops-in-batch-scripting-language 4/11
6/23/2020 Loops in Batch Scripting Language

forL_example1.bat

?
1 @echo off
2  
3  
4 FOR /L %%d IN (1 2 8 ) DO  (
5     
6    echo %%d
7 )
8  
9 pause

forL_example2.bat

?
1 @echo off
2  
3  
4 FOR /L %%d IN (20 -2 5 ) DO  (
5     
6    echo %%d
7 )
8  
9 pause
10

6- For /F
The  For /F loop is a complex but powerful loop. It reads a file or a few files and then analyzes the contents of files. The content of
a file is a text; it is split into several small pieces of text, each of which is called a Token. The default rule for separating a text is
based on white space. However, you can customize the delimiter rule by ["delims = xxx"] parameter.

The For / F loop is also used to analyze the contents of a string, or to execute a set of commands.

https://o7planning.org/en/11623/loops-in-batch-scripting-language 5/11
6/23/2020 Loops in Batch Scripting Language

Syntax:

?
1 FOR /F ["options"] %%variable IN ( set_of_filenames ) DO command
2  
3 FOR /F ["options"] %%variable IN ( set_of_filenames ) DO (
4  
5      command
6 )
7        
8      
9 FOR /F ["options"] %%variable IN ("Text string to process") DO command
10  
11 FOR /F ["options"] %%variable IN ("Text string to process") DO (
12  
13      command
14 )

set_of_filenames: List of a or several files.


options: Options, for example, "delims=, tokens=1,2,4"

Option Description

delims=xxx Delimiter character(s). by default is a space


skip=n The first line number will be ignored in the contents of  file, defaulted skip = 0

eol (End of Line): Specifies a special character, which is put at the beginning of a line to mark this line as
eol=;
comment line. Comment lines will be ignored by the program, defaulted semicolon character (;)

tokens=n1,n2,n3 defines the positions cared about (n1, n2, n3, ..), defaulted tokens=1
usebackq (See explanation in examples)

To be easy to understand, let's analyze the following file:

https://o7planning.org/en/11623/loops-in-batch-scripting-language 6/11
6/23/2020 Loops in Batch Scripting Language

eol (End of Line)

eol: Used to specify a special character, which is by default a semicolon character (;). It is placed at the beginning of a line to mark
that such line is a comment. The program will ignore this line.

skip=n

skip: Declare the number of first lines of the file will be ignored, the program will not analyze these lines. Default skip = 0

https://o7planning.org/en/11623/loops-in-batch-scripting-language 7/11
6/23/2020 Loops in Batch Scripting Language

delims (Delimiter character(s))

delims: Defines delimiter characters, helping the program to delimit each line of text into sub-paragraphs, each of which is called a
Token. Tokens are marked indices: 1, 2, 3, ...

tokens=n1,n2,n3

tokens: Declare a list of  indices that are interested in, separated by commas. For example, tokens = 1,2,4, defaulted: tokens = 1

Tokens Description
tokens=1,2,4 The indices such as 1, 2, 4 are interested.
tokens=2-8 The indices of  2 to 8 are interested

tokens=3,* The indices such as 3, 4,5, ... are interested


tokens=* All indices are interested 

For example,   "tokens=1,2,4", means that  Tokens at the position of 1, 2, 4 are interested and other Tokens will be ignored.

https://o7planning.org/en/11623/loops-in-batch-scripting-language 8/11
6/23/2020 Loops in Batch Scripting Language

Example of file analysis:

Example of using the  FOR /F loop to read persons.txt file:

persons.txt

?
1 List of celebrities
2 Creation date: 2017/09/11
3  
4 ; (Comment) Male List
5 Bill,Gates,1955/10/28,Male
6 Steve,Jobs,1955/02/24,Male
7 Mark,Zuckerberg,1984/05/16,Male
8 Sundar,Pichai,1972/07/12,Male
9 ; (Comment) Female List
10 Hillary,Clinton,1947/10/26,Female

forF_example1.bat

?
1 @echo off
2  
3  
4 FOR /F "delims=, skip=3 eol=; tokens=1,2,4" %%i IN ( persons.txt ) DO  (
5     
6    echo Full Name: %%i %%j   Gender: %%k
7     
8 )
9  
10 pause
11
12

“ Note: Name of variables on the loop has only character .

Biến %%i variable is explicitly declared on the loop.   %% j, %% k variables are implicitly declared (names of implicit
variables are the next characters of  explicit variable names).

https://o7planning.org/en/11623/loops-in-batch-scripting-language 9/11
6/23/2020 Loops in Batch Scripting Language

Example of chain analysis:

TODO

View more Tutorials:

Batch Scripting Language Tutorials

Batch Scripting Language Tutorials

Batch Scripting Language Tutorial for Beginners


Variables in Batch Scripting Language
Loops in Batch Scripting Language
Arrays in Batch Scripting Language

Newest Documents

Android CharacterPickerDialog
Android Dialog
Android TimePickerDialog
Create a simple File Chooser in Android
Create a simple File Dialog Finder in Android
Android Wifi Scanning
Upgrade Mac Operating System
How do I take a MacOS Retina screenshot and get the image at its actual size?
iOS Tutorial for Beginners - Hello iOS
Android Phone Call

o7planning.org

https://o7planning.org/en/11623/loops-in-batch-scripting-language 10/11
6/23/2020 Loops in Batch Scripting Language

https://o7planning.org/en/11623/loops-in-batch-scripting-language 11/11

You might also like