SHIFT: De positie van vervangbare parameters in batchbestanden wijzigen.


... "SHIFT" Fragment uit Microsoft Windows Help
... De voorbeelden voor het commando "SHIFT"
... Belangrijke informatie, tips voor het "SHIFT" commando

Het commando: "SHIFT" staat aan Windows 11, 10, .. beschikbaar

"SHIFT" Fragment uit Microsoft Windows Help

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

C:\\Windows>

Wijzigt de positie van een vervangbare parameter in een 
batchbestand.

SHIFT [/n]

Als opdrachtextensies worden ingeschakeld, ondersteunt de 
opdracht
SHIFT de schakeloptie /n, waardoor de opdracht begint met het
verplaatsen vanaf het x-de argument, waarbij x een waarde van
0 t/m 8 is. Bijvoorbeeld:

SHIFT /2

verplaatst %3 naar %2, %4 naar %3 etc, waarbij %0 en %1 niet
worden beïnvloed.

De voorbeelden voor het commando "SHIFT"

De`SHIFT`opdracht in Windows Command Prompt wordt gebruikt om de positie van parameters in een batchbestand te verplaatsen. Hier zijn enkele voorbeelden van het gebruik van de`SHIFT`-Commando: Voorbeeld 1: Herhaal de parameters in een batchbestand:

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

Beschrijving: Dit voorbeeld gebruikt een lus om alle parameters in een batchbestand te doorlopen en ze één voor één weer te geven. Het bevel`SHIFT`wordt gebruikt om de positie van de parameters te verplaatsen. Voorbeeld 2: Parameters optellen in een batchbestand:

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

Beschrijving: In dit voorbeeld worden de parameters in een lus opgeteld. Het bevel`SHIFT`verplaatst de parameterpositie, en`SET /A`wordt gebruikt om het totaal bij te werken. Voorbeeld 3: Werken met geneste lussen en 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

Beschrijving: Dit voorbeeld laat zien hoe`SHIFT`kan worden gebruikt in geneste lussen. De buitenste lus verwerkt de buitenste parameters, terwijl de binnenste lus de binnenste parameters verwerkt. Voorbeeld 4: Parameters overslaan met SHIFT:

@ECHO OFF
SHIFT
SHIFT
ECHO Derde Parameter: %1

Beschrijving: Hier worden de eerste twee parameters twee opeenvolgende gebruikt`SHIFT`opdrachten worden overgeslagen en de derde parameter wordt weergegeven. Voorbeeld 5: Parameters controleren en verwerken:

@ECHO OFF
:PARAM_LOOP
IF "%1"=="" GOTO END_PARAM
IF /I "%1"=="/DEBUG" (
    ECHO Debug-Modus geactiveerd.
    SHIFT
    GOTO PARAM_LOOP
)
ECHO Proces Parameter: %1
SHIFT
GOTO PARAM_LOOP
:END_PARAM

Beschrijving: Dit voorbeeld controleert of de eerste parameter "/DEBUG" is. Als dit het geval is, wordt er een melding gegeven en wordt de parameter overgeslagen. De`SHIFT`commando is vooral handig in batchscripts waarbij een variabel aantal parameters moet worden verwerkt. Let daar op`SHIFT`verplaatst de inhoud van de parameterlijst en wijst parameterposities opnieuw toe. Daarom is het belangrijk`SHIFT`Gebruik verstandig en volgens de logica van uw batchscript.

Belangrijke informatie, tips voor het "SHIFT" commando

Bij gebruik van de`SHIFT`commando in batchscripts, zijn er enkele belangrijke aspecten waarmee u rekening moet houden: 1. Parameterverlies: Als u`SHIFT`hierdoor wordt de positie van de parameters in de parameterlijst naar links verplaatst. Dit betekent dat de waarde van de eerste parameter (`%1`) door die van de tweede parameter (`%2`) wordt vervangen, de tweede parameter wordt de derde (`%3`), enzovoorts. De waarde van de laatste parameter (`%9`) gaat verloren, en de waarde van`%0`(de scriptnaam) blijft ongewijzigd. 2. Aantal diensten: Dat kan`SHIFT`slechts negen keer in een batchscript omdat er slechts negen numerieke parameters zijn (`%0`tot`%9`) geeft. Na de negende verschuiving blijft de waarde van de negende parameter verloren. 3. SHIFT in loops: Als je`SHIFT`in een lus moet u ervoor zorgen dat de voorwaarden goed worden gecontroleerd om een ​​oneindige lus te voorkomen als er geen andere parameters zijn.

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

4. SHIFT in geneste lussen: Als je`SHIFT`Houd er bij geneste lussen rekening mee dat het verplaatsen van de parameters in een lus ook de parameterposities in de geneste lussen beïnvloedt.

@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. Vertraagde uitbreiding en SHIFT: Als je`SHIFT`in combinatie met vertraagde expansie (`ENABLEDELAYEDEXPANSION`), Let daar op`!`wordt niet gebruikt voor vertraagde expansie`%`.

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

Het is belangrijk om rekening te houden met de volgorde en frequentie van`SHIFT`plan zorgvuldig om ervoor te zorgen dat de parameters worden verplaatst zoals verwacht en dat er geen informatie verloren gaat. Controleer ook op lege parameters (`IF "%1"==""`) is belangrijk om oneindige lussen te voorkomen.


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



De opdracht SHIFT - De positie van vervangbare parameters in batchbestanden wijzigen.

HTTP: ... console/nl/060.htm
0.077
18104

Wi-Fi or WLAN Show Driver Information, can I (Command Prompt)?

Command line to delete empty folders Windows 11, 10, ....!

Was ist in Windows der Infobereich?

Why adjust the Windows Energy Options automatically?

Was bitte ist DirectX 12 Ultimate?

Was ist der Unterschied Windows 10X vs. Windows 10?



(0)