SHIFT
Change the position of command line parameters in a batch file.
Syntax SHIFT [/n]
for example:
given %1=one, %2=two, %3=three...
SHIFT
will result in %1=two, %2=three
alternatively given %1=one, %2=two, %3=three...
SHIFT & SHIFT
will result in %1=three
/n tells the SHIFT command to start shifting at the nth argument,
where n may be between zero and eight.
for example:
given %1=one, %2=two, %3=three, %4=four...
SHIFT /2
will result in %1=one, %2=three, %3=four
%0 is the name of the batch file itself - %1 can be shifted into %0
Relative pathnames
The parameter %0 will initially refer to the path that was used to execute the
batch - this could be MyBatch.cmd if in the current directory or a full path
like C:\apps\myBatch.cmd
When SHIFT is used to move a text parameter into %0 then references to %0 will
refer to the current working directory, unless those parameters happen to contain
a valid path.
For example:
%0\..\MyExecutable.exe
will run the executable from the same directory
If the following parameter is passed to myBatch.cmd
myBatch.cmd D:\utils\
Then the following commands in myBatch will run MyExecutable.exe from the directory
D:\utils\
SHIFT
%0\..\MyExecutable.exe
If Command Extensions are disabled, the SHIFT command
will not support the /n switch
"If NumLock is on, pressing a key on the numeric keypad while holding SHIFT overrides NumLock and instead generates an arrow key" - OldNewThing
Related commands
CALL - Call one batch program from another
SET - Display or edit environment variables
Equivalent Linux BASH commands:
shift - Shift positional parameters