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


 


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

O comando: "SHIFT" está ativado Windows 11, 10, .. , MS Server 2025, 2022, 2019, .. disponível

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.

"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.

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.093
18923
How and why do command lines work in CMD.EXE? Den Windows 11, 10, 8.1 Lizenzschlüssel per Befehlszeile auslesen/anzeigen! Delete all files except the most recent via command line, script or CMD.EXE? Was with error code -1073741701 (0xc000007b)! Klassisches Bootmenü unter Windows 11, 10, 8.1, ... wieder aktivieren! WinScan2PDF Turkish Description! Too fast cursor in Windows text editors? Wie alt ist Windows XP, ist es schon über 20 Jahre alt? The free mouse tracks program with customizations? joyGetPosEx-Funktion zum abfragen der Joystick / Controller Position!



(0)