SHIFT: Modifica la posizione di parametri sostituibili in file batch.


 


... Gli esempi per il comando "SHIFT"
... "SHIFT" Estratto dalla guida di Microsoft Windows
... Informazioni importanti, suggerimenti per il comando "SHIFT"

Il comando: "SHIFT" è attivo Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. disponibile

Gli esempi per il comando "SHIFT"

IL`SHIFT`Il comando nel prompt dei comandi di Windows viene utilizzato per spostare la posizione dei parametri in un file batch. Ecco alcuni esempi di utilizzo di`SHIFT`-Comando: Esempio 1: scorrere i parametri in un file batch:

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

Descrizione: Questo esempio utilizza un ciclo per scorrere tutti i parametri in un file batch e visualizzarli uno per uno. Il comando`SHIFT`viene utilizzato per spostare la posizione dei parametri. Esempio 2: somma dei parametri in un file batch:

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

Descrizione: In questo esempio i parametri vengono sommati in un ciclo. Il comando`SHIFT`sposta la posizione del parametro e`SET /A`viene utilizzato per aggiornare il totale. Esempio 3: lavorare con cicli nidificati 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

Descrizione: Questo esempio mostra come`SHIFT`può essere utilizzato in cicli nidificati. Il ciclo esterno elabora i parametri esterni mentre il ciclo interno elabora i parametri interni. Esempio 4: Saltare i parametri con SHIFT:

@ECHO OFF
SHIFT
SHIFT
ECHO Terzo Parameter: %1

Descrizione: Qui i primi due parametri vengono utilizzati con due consecutivi`SHIFT`i comandi vengono saltati e viene visualizzato il terzo parametro. Esempio 5: controllo e gestione dei parametri:

@ECHO OFF
:PARAM_LOOP
IF "%1"=="" GOTO END_PARAM
IF /I "%1"=="/DEBUG" (
    ECHO Debug-Modalità attivata.
    SHIFT
    GOTO PARAM_LOOP
)
ECHO Processi Parameter: %1
SHIFT
GOTO PARAM_LOOP
:END_PARAM

Descrizione: Questo esempio controlla se il primo parametro è "/DEBUG". In tal caso viene emesso un messaggio e il parametro viene saltato. IL`SHIFT`Il comando è particolarmente utile negli script batch in cui è necessario elaborare un numero variabile di parametri. Notare che`SHIFT`sposta il contenuto dell'elenco dei parametri e riassegna le posizioni dei parametri. Pertanto, è importante`SHIFT`Utilizzalo con saggezza e secondo la logica del tuo script batch.

"SHIFT" Estratto dalla guida di Microsoft Windows

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

C:\\WINDOWS>

Cambia la posizione dei parametri sostituibili in un file batch.

SHIFT [/n]

Se le estensioni ai comandi sono abilitate, il comando SHIFT supporta
l'opzione /n che comunica al comando di iniziare l'azione di shif
all'argomento "alla n", dove n può essere tra zero e otto.  Per 
esempio:

    SHIFT /2

esegue lo shift di %3 a %2, %4 a %3, ecc., lasciando %0 e %1 invariati.

Informazioni importanti, suggerimenti per il comando "SHIFT"

Quando si utilizza il`SHIFT`comando negli script batch, ci sono alcuni aspetti importanti da considerare: 1. Perdita di parametri: Se tu`SHIFT`questo sposta la posizione dei parametri nell'elenco dei parametri a sinistra. Ciò significa che il valore del primo parametro (`%1`) da quello del secondo parametro (`%2`) viene sostituito, il secondo parametro diventa il terzo (`%3`), e così via. Il valore dell'ultimo parametro (`%9`) viene perso e il valore di`%0`(il nome dello script) rimane invariato. 2. Numero di turni: Puoi`SHIFT`solo nove volte in uno script batch perché ci sono solo nove parametri numerici (`%0`Fino a`%9`) dà. Dopo il nono spostamento il valore del nono parametro resta perso. 3. SHIFT in loop: Se tu`SHIFT`in un ciclo, è necessario assicurarsi che le condizioni siano controllate correttamente per evitare un ciclo infinito se non sono presenti altri parametri.

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

4. SHIFT nei cicli nidificati: Se tu`SHIFT`nei cicli nidificati, tieni presente che lo spostamento dei parametri in un ciclo influisce anche sulle posizioni dei parametri nei cicli nidificati.

@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. Espansione ritardata e SHIFT: Se tu`SHIFT`in combinazione con espansione ritardata (`ENABLEDELAYEDEXPANSION`), notare che`!`non viene utilizzato per l'espansione ritardata`%`.

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

È importante considerare l'ordine e la frequenza di`SHIFT`pianificare attentamente per garantire che i parametri vengano spostati come previsto e che nessuna informazione venga persa. Controllando anche i parametri vuoti (`IF "%1"==""`) è importante per evitare cicli infiniti.


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



Il comando SHIFT - Modifica la posizione di parametri sostituibili in file batch.

HTTP: ... console/it/060.htm
0.093
17181
How can I open the color management in Windows-11, -12!
How can I backup the individual entries or export from Quick-Text-Paste?
Unterschied Statische IP und Dynamische IP?
Difference between OLED and QLED?
Save the INI file in my Google Drive or OneDrive?
Bei Problemen mit komplexen Befehlen eine BAT Datei verwenden!
Wie kann ich mein zugemülltes Windows-7 neu installieren?
Can I paste images via image path to a active program via clipboard?
Difference between CLI and GUI?
Change Windows Desktop Icon Size and View, plus save?



(0)