Change the position of command line parameters in a batch file.
Syntax
SHIFT [/n]for example:
given &qt;1=one, &qt;2=two, &qt;3=three…
SHIFT
will result in &qt;1=two, &qt;2=three
alternatively given &qt;1=one, &qt;2=two, &qt;3=three…
SHIFT & SHIFT
will result in &qt;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 &qt;1=one, &qt;2=two, &qt;3=three, &qt;4=four…
SHIFT /2
will result in &qt;1=one, &qt;2=three, &qt;3=four
&qt;0 is the name of the batch file itself – &qt;1 can be shifted into &qt;0
Relative pathnames
The parameter &qt;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:appsmyBatch.cmd
When SHIFT is used to move a text parameter into &qt;0 then references to &qt;0 will refer to the current working directory, unless those parameters happen to contain a valid path.
For example:
&qt;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
&qt;0..MyExecutable.exe
If Command Extensions are disabled, the SHIFT command will not support the /n switch