Changes the position of replaceable parameters in a batch program.
SHIFT /?
SHIFT [/n]
none.
CALL - Call one batch program from another.
SET - Display or edit environment variables.
Equivalent Linux BASH commands:
shift - Shift positional parameters.
The SHIFT command changes the values of the replaceable parameters %0 through %9 by copying each parameter into the previous one. In other words, the value of %1 is copied to %0, the value of %2 is copied to %1, and so on. This is useful for writing a batch file that performs the same operation on any number of parameters.
You can also use the SHIFT command to create a batch file that can accept more than 10 parameters. If you specify more than 10 parameters on the command-line, those that appear after the tenth (%9) will be shifted one at a time into %9.
There is no backward SHIFT command. Once you carry out the SHIFT command, you cannot recover the first parameter (%0) that existed before the shift.
The batch file, MYCOPY.BAT, shows how to use the SHIFT command with any number of parameters. It copies a list of files to a specific directory. The parameters are the directory name followed by any number of filenames.
@ECHO OFF REM MYCOPY.BAT copies any number of files to a directory. REM REM The command uses the following syntax: REM mycopy dir file1 file2 ... SET TODIR=%1 :GETFILE SHIFT IF '%1'=='' GOTO END COPY %1 %TODIR% GOTO GETFILE :END SET TODIR= ECHO All done
none.