Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Altera a posição dos parâmetros do lote em um arquivo em lote.
Sintaxe
shift [/n <N>]
Parâmetros
Parâmetro | Descrição |
---|---|
/n <N> |
Especifica para começar a mudar no argumento N, em que N é qualquer valor de 0 para 8. Requer extensões de comando, que são habilitadas por padrão. |
/? | Exibe a ajuda no prompt de comando. |
Observações
O comando shift altera os valores dos parâmetros do lote %0 por meio de %9 copiando cada parâmetro para o anterior– o valor de %1 é copiado para %0, o valor de %2 é copiado para %1e assim por diante. Isso é útil para gravar um arquivo em lote que executa a mesma operação em qualquer número de parâmetros.
Se as extensões de comando estiverem habilitadas, o comando shift oferecerá suporte à opção de linha de comando /n. A opção /n especifica para começar a mudar no argumento Nth, em que N é qualquer valor de 0 a 8. Por exemplo, SHIFT /2 mudaria %3 para %2, %4 para %3e assim por diante e deixaria %0 e %1 não afetados. As extensões de comando são habilitadas por padrão.
Você pode usar o comando shift para criar um arquivo em lote que pode aceitar mais de 10 parâmetros em lotes. Se você especificar mais de 10 parâmetros na linha de comando, aqueles que aparecerem após o décimo (%9) serão deslocados um de cada vez para %9.
O comando shift não tem efeito sobre o parâmetro do lote %*.
Não há nenhum comando de turno para trás. Depois de implementar o comando shift, não é possível recuperar o parâmetro do lote (%0) que existia antes da mudança.
Exemplos
Para usar um arquivo em lote, chamado Mycopy.bat, para copiar uma lista de arquivos para um diretório específico, digite:
@echo off
rem MYCOPY.BAT copies any number of files
rem to a directory.
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