Using the SHIFT Statement

by Barry Dysert
(last updated October 30, 2017)

You may find the SHIFT statement useful in some of your batch files. What SHIFT does is shift the command-line parameters from right to left. (Command-line parameters are those parameters included on the command line used to execute your batch file.) This gives you one way, for example, to have your batch file accept a variable number of parameters.

Internally, the command interpreter numbers elements of the command line. For instance, consider the following command that executes a batch file named DOIT.BAT:

doit first second third fourth fifth

In this instance, the command is "doit", which is followed by five parameters: first, second, third, fourth, and fifth. The command interpreter, internally, numbers these parameters %1 through %5. In reality, though, there is a "parameter" numbered %0: the command (the batch file name) itself.

To see how this works, create your own DOIT.BAT file that contains the following commands:

@ECHO OFF
CLS
:TOP
IF [%0]==[] GOTO :EOF
ECHO %0 %1 %2 %3 %4 %5
SHIFT
GOTO TOP

The batch file first turns off echoing of commands to the screen, then clears the screen. It then sets up a loop of commands (from :TOP through the end of the file) that echoes, to the screen, the elements of the command line and then shifts (through use of the SHIFT command) all the elements to the left. After the shift, element %0 is discarded, element %1 becomes %0, element %2 becomes %1, and so on. When you run the batch file, you should see the following output:

doit first second third fourth fifth
first second third fourth fifth
second third fourth fifth
third fourth fifth
fourth fifth
fifth

When you use SHIFT in your own batch files, you can invoke the file with a variable number of parameters and then shift through those parameters to do your processing.

 This tip (13198) applies to Windows 7, 8, and 10.

Author Bio

Barry Dysert

Barry has been a computer professional for over 35 years, working in different positions such as technical team leader, project manager, and software developer. He is currently a software engineer with an emphasis on developing custom applications under Microsoft Windows. When not working with Windows or writing Tips, Barry is an amateur writer. His first non-fiction book is titled "A Chronological Commentary of Revelation." ...

MORE FROM BARRY

Creating a Desktop Shortcut for a Favorite Web Page

If you visit a certain Web page frequently, you may wish to create a desktop shortcut to take you there. This tip tells ...

Discover More

Finding New Desktop Widgets

Although there are several widgets that come with Windows, a lot more are available if you're willing to do a little Web ...

Discover More

Disabling System Restore

Restore points are good to have in case a problem occurs while trying to make changes to your system. If for some reason ...

Discover More
More WindowsTips

Passing Parameters to a PowerShell Script

Like the older batch-file processor, PowerShell can accept parameters. This allows for flexibility in your script. This ...

Discover More

Creating a Simple Batch File

One of the powerful capabilities built into Windows is the ability to create and use batch files to perform a wide ...

Discover More

PowerShell Input and Output

When dealing with a scripting language like PowerShell, one of the first things you need to learn is how to get data into ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in WindowsTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is two more than 9?

There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)


Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in WindowsTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.