SHIFT: Altera a posição dos parâmetros substituíveis em um arquivo em lotes.


... "SHIFT" Trecho da Ajuda do Microsoft Windows
... Os exemplos para o comando "SHIFT"
... Informações importantes, dicas para o comando "SHIFT"

O comando: "SHIFT" está ativado Windows 11, 10, .. disponível

"SHIFT" Trecho da Ajuda do Microsoft Windows

Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.

C:\\Windows>

Altera a posição dos parâmetros substituíveis em um arquivo em lotes.

SHIFT [/n]

Se as extensões de comando estiverem ativadas, o comando SHIFT oferecerá
suporte à opção /n que informa ao comando para iniciar a alternância no
enésimo argumento, onde n pode estar entre zero e oito. Por exemplo:

SHIFT /2

alternaria de %3 para %2, de %4 para %3, etc. e deixaria %0 e %1
inalterados.

Os exemplos para o comando "SHIFT"

O`SHIFT`O comando no prompt de comando do Windows é usado para mover a posição dos parâmetros em um arquivo em lote. Aqui estão alguns exemplos de uso do`SHIFT`-Comando: Exemplo 1: Iterar através de parâmetros em um arquivo em lote:

@ECHO OFF
:LOOP
IF "%1"=="" GOTO END
ECHO Parameter: %1
SHIFT
GOTO LOOP
:END

Descrição: Este exemplo usa um loop para iterar todos os parâmetros em um arquivo em lote e exibi-los um por um. O comando`SHIFT`é usado para mover a posição dos parâmetros. Exemplo 2: Somar parâmetros em um arquivo em lote:

@ECHO OFF
SET TOTAL=0
:ADD_LOOP
IF "%1"=="" GOTO END_ADD
SET /A TOTAL+= %1
SHIFT
GOTO ADD_LOOP
:END_ADD
ECHO total: %TOTAL%

Descrição: Neste exemplo os parâmetros são somados em um loop. O comando`SHIFT`move a posição do parâmetro e`SET /A`é usado para atualizar o total. Exemplo 3: Trabalhando com loops aninhados e SHIFT:

@ECHO OFF
:OUTER_LOOP
IF "%1"=="" GOTO END_OUTER
ECHO Outer Parameter: %1
SHIFT
:INNER_LOOP
IF "%1"=="" GOTO END_INNER
ECHO Inner Parameter: %1
SHIFT
GOTO INNER_LOOP
:END_INNER
GOTO OUTER_LOOP
:END_OUTER

Descrição: Este exemplo mostra como`SHIFT`pode ser usado em loops aninhados. O loop externo processa os parâmetros externos enquanto o loop interno processa os parâmetros internos. Exemplo 4: Ignorando parâmetros com SHIFT:

@ECHO OFF
SHIFT
SHIFT
ECHO Terceiro Parameter: %1

Descrição: Aqui os dois primeiros parâmetros são usados ​​com dois`SHIFT`os comandos são ignorados e o terceiro parâmetro é exibido. Exemplo 5: verificar e tratar parâmetros:

@ECHO OFF
:PARAM_LOOP
IF "%1"=="" GOTO END_PARAM
IF /I "%1"=="/DEBUG" (
    ECHO Debug-Modo ativado.
    SHIFT
    GOTO PARAM_LOOP
)
ECHO Processo Parameter: %1
SHIFT
GOTO PARAM_LOOP
:END_PARAM

Descrição: Este exemplo verifica se o primeiro parâmetro é "/DEBUG". Se for esse o caso, uma mensagem será emitida e o parâmetro será ignorado. O`SHIFT`O comando é particularmente útil em scripts em lote onde um número variável de parâmetros precisa ser processado. Observe que`SHIFT`move o conteúdo da lista de parâmetros e reatribui as posições dos parâmetros. Portanto, é importante`SHIFT`Use com sabedoria e de acordo com a lógica do seu script em lote.

Informações importantes, dicas para o comando "SHIFT"

Ao usar o`SHIFT`comando em scripts em lote, há alguns aspectos importantes a serem considerados: 1. Perda de parâmetro: Se você`SHIFT`isso move a posição dos parâmetros na lista de parâmetros para a esquerda. Isso significa que o valor do primeiro parâmetro (`%1`) pelo do segundo parâmetro (`%2`) é substituído, o segundo parâmetro se torna o terceiro (`%3`), e assim por diante. O valor do último parâmetro (`%9`) é perdido e o valor de`%0`(o nome do script) permanece inalterado. 2. Número de turnos: Você pode`SHIFT`apenas nove vezes em um script em lote porque existem apenas nove parâmetros numéricos (`%0`até`%9`) dá. Após a nona mudança, o valor do nono parâmetro permanece perdido. 3. SHIFT em loops: Se você`SHIFT`em um loop, você deve garantir que as condições sejam verificadas corretamente para evitar um loop infinito se não houver outros parâmetros.

@ECHO OFF
:LOOP
IF "%1"=="" GOTO END_LOOP
ECHO Parameter: %1
SHIFT
GOTO LOOP
:END_LOOP

4. SHIFT em loops aninhados: Se você`SHIFT`em loops aninhados, observe que mover os parâmetros em um loop também afeta as posições dos parâmetros nos loops aninhados.

@ECHO OFF
:OUTER_LOOP
IF "%1"=="" GOTO END_OUTER
ECHO Outer Parameter: %1
SHIFT
:INNER_LOOP
IF "%1"=="" GOTO END_INNER
ECHO Inner Parameter: %1
SHIFT
GOTO INNER_LOOP
:END_INNER
GOTO OUTER_LOOP
:END_OUTER

5. Expansão e SHIFT atrasadas: Se você`SHIFT`em combinação com expansão retardada (`ENABLEDELAYEDEXPANSION`), Observe que`!`não é usado para expansão atrasada`%`.

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET COUNT=0
:LOOP
IF "!1"=="" GOTO END_LOOP
SET /A COUNT+=1
SHIFT
GOTO LOOP
:END_LOOP
ECHO número de Parameter: %COUNT%

É importante considerar a ordem e a frequência das`SHIFT`planeje cuidadosamente para garantir que os parâmetros sejam movidos conforme o esperado e nenhuma informação seja perdida. Também verificando parâmetros vazios (`IF "%1"==""`) é importante para evitar loops infinitos.


Deutsch
English
Español
Français
Italiano
日本語 (Nihongo)
한국어 (Hangugeo)
汉语 (Hànyǔ)
Türkçe
Português
Português
Svenska
Norsk
Dansk
Suomi
Nederlands
Polski









Windows-10


... Windows 10 FAQ
... Windows 10 How To


Windows 10 How To


... Windows 11 How To
... Windows 10 FAQ



O comando SHIFT - Altera a posição dos parâmetros substituíveis em um arquivo em lotes.

HTTP: ... console/br/060.htm
0.046
18923

Windows 10 is getting slower, why?

Set a limit for maximum used RAM memory on Windows 10/8.1/7, can I?

When the Windows 10 gets sluggish and sluggish?

Search for the best Image Comparison tools for Windows 10 / 11! 

Which is better shutdown, or standby mode?

BSCMAKE: error BK1506 : Datei ... kann nicht geöffnet werden: No such file or directory!



(0)