SHIFT: Ændrer placeringen af udskiftelige parametre til batchfiler.


 


... Eksempler på kommandoen "SHIFT"
... "SHIFT" Uddrag fra Microsoft Windows Hjælp
... Vigtig information, tip til kommandoen "SHIFT"

Kommandoen: "SHIFT" er tændt Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. tilgængelig

Eksempler på kommandoen "SHIFT"

Det`SHIFT`kommando i Windows Kommandoprompt bruges til at flytte placeringen af ​​parametre i en batchfil. Her er nogle eksempler på brug af`SHIFT`-Kommando: Eksempel 1: Gentag parametre i en batchfil:

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

Beskrivelse: Dette eksempel bruger en loop til at gentage alle parametre i en batchfil og vise dem én efter én. Kommandoen`SHIFT`bruges til at flytte parametrenes position. Eksempel 2: Sumparametre i en batchfil:

@ECHO OFF
SET I ALT=0
:ADD_LOOP
IF "%1"=="" GOTO END_ADD
SET /A I ALT+= %1
SHIFT
GOTO ADD_LOOP
:END_ADD
ECHO Total: %I ALT%

Beskrivelse: I dette eksempel er parametrene summeret i en loop. Kommandoen`SHIFT`flytter parameterpositionen, og`SET /A`bruges til at opdatere totalen. Eksempel 3: Arbejde med indlejrede løkker og 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

Beskrivelse: Dette eksempel viser hvordan`SHIFT`kan bruges i indlejrede løkker. Den ydre sløjfe behandler ydre parametre, mens den indre sløjfe behandler de indre parametre. Eksempel 4: Spring parametre over med SHIFT:

@ECHO OFF
SHIFT
SHIFT
ECHO Tredje Parameter: %1

Beskrivelse: Her bruges de to første parametre med to på hinanden følgende`SHIFT`kommandoer springes over, og den tredje parameter vises. Eksempel 5: Kontroller og håndter parametre:

@ECHO OFF
:PARAM_LOOP
IF "%1"=="" GOTO END_PARAM
IF /I "%1"=="/DEBUG" (
    ECHO Debug-Tilstand aktiveret.
    SHIFT
    GOTO PARAM_LOOP
)
ECHO Behandle Parameter: %1
SHIFT
GOTO PARAM_LOOP
:END_PARAM

Beskrivelse: Dette eksempel kontrollerer, om den første parameter er "/DEBUG". Hvis dette er tilfældet, udsendes en meddelelse, og parameteren springes over. Det`SHIFT`kommandoen er især nyttig i batch-scripts, hvor et variabelt antal parametre skal behandles. Noter det`SHIFT`flytter indholdet af parameterlisten og tildeler parameterpositioner igen. Derfor er det vigtigt`SHIFT`Brug klogt og i overensstemmelse med logikken i dit batchscript.

"SHIFT" Uddrag fra Microsoft Windows Hjælp

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

C:\\Windows>

Ændrer placeringen af parametre til en batchfil.

SHIFT

Hvis kommandoudvidelserne er aktiveret, understøtter kommandoen 
SHIFT
parameteren /n, der fortæller kommandoen, at den skal starte 
forskydningen
ved det n'te argument, hvor n kan være mellem nul og otte. 
Eksempelvis vil:

SHIFT /2

forskyde %3 til %2, %4 til %3, osv. og lade %0 og %1 være 
uændret.

Vigtig information, tip til kommandoen "SHIFT"

Ved brug af`SHIFT`kommando i batch-scripts, er der nogle vigtige aspekter at overveje: 1. Parametertab: Hvis du`SHIFT`dette flytter parametrenes position i parameterlisten til venstre. Det betyder, at værdien af ​​den første parameter (`%1`) af den anden parameter (`%2`) erstattes, bliver den anden parameter den tredje (`%3`), og så videre. Værdien af ​​den sidste parameter (`%9`) er tabt, og værdien af`%0`(scriptnavnet) forbliver uændret. 2. Antal vagter: Du kan`SHIFT`kun ni gange i et batchscript, fordi der kun er ni numeriske parametre (`%0`indtil`%9`) giver. Efter det niende skift forbliver værdien af ​​den niende parameter tabt. 3. SHIFT i sløjfer: Hvis du`SHIFT`i en loop, bør du sikre dig, at betingelserne er kontrolleret korrekt for at undgå en uendelig loop, hvis der ikke er andre parametre.

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

4. SKIFT i indlejrede løkker: Hvis du`SHIFT`i indlejrede sløjfer, skal du bemærke, at flytning af parametrene i en sløjfe også påvirker parameterpositionerne i de indlejrede sløjfer.

@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. Forsinket udvidelse og SHIFT: Hvis du`SHIFT`i kombination med forsinket ekspansion (`ENABLEDELAYEDEXPANSION`), Noter det`!`bruges ikke til forsinket udvidelse`%`.

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

Det er vigtigt at overveje rækkefølgen og hyppigheden af`SHIFT`planlæg omhyggeligt for at sikre, at parametrene flyttes som forventet, og ingen information går tabt. Kontrollerer også for tomme parametre (`IF "%1"==""`) er vigtigt for at undgå uendelige løkker.


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



Kommando-linje SHIFT - Ændrer placeringen af udskiftelige parametre til batchfiler.

HTTP: ... console/da/060.htm
0.109
18031
Verbindung zu Remote Desktop Dienst über die Eingabeaufforderung! robocopy or xcopy from command prompt on MS Windows OS! Delete the connection IPs of the visiting website via command prompt! Why does it take forever to compile in VS 2022, what can I do? Use WebView2? FTP uploads / downloads via the command prompt in Windows 11, 10, 8.1, ...! The network drive is not there when Windows is restarted (11, 10, 8.1, 7)? Query installed Windows versions with PowerShell and command prompt! Batch job file to cancel print jobs? Adjust cell spacing in Microsoft Word table?



(0)