Il comando: "SET" è attivo Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. disponibile
Gli esempi per il comando "SET"
IL
`SET`Il comando nel prompt dei comandi di Windows viene utilizzato per creare, visualizzare o modificare le variabili di ambiente. Ecco alcuni esempi di utilizzo di
`SET`-Comando:
Esempio 1: crea una nuova variabile di ambiente:
SET NUOVO_VARIABLE=Contenuti
Descrizione: Questo comando crea una nuova variabile di ambiente denominata
`NUOVO_VARIABLE`e il valore
`Contenuti`.
Esempio 2: visualizzazione di una variabile di ambiente esistente:
SET ESISTENTE_VARIABLE
Descrizione: Questo comando mostra il valore della variabile d'ambiente
`ESISTENTE_VARIABLE`A.
Esempio 3: mostra tutte le variabili di ambiente:
SET
Descrizione: Entrando
`SET`senza una variabile specifica, vengono visualizzate tutte le variabili di ambiente e i loro valori.
Esempio 4: Elimina variabile:
SET NUOVO_VARIABLE=
Descrizione: Questo è il valore della variabile d'ambiente
`NUOVO_VARIABLE`cancellato.
Esempio 5: utilizzo di una variabile in un file batch:
ECHO %NUOVO_VARIABLE%
Descrizione: Questo comando restituisce il valore della variabile di ambiente
`NUOVO_VARIABLE`fuori da. Nei file batch la sintassi
`%Variable%`utilizzato per accedere al valore di una variabile di ambiente.
Esempio 6: salvataggio dell'input dell'utente in una variabile:
SET /P INGRESSO UTENTE=Inserisci qualcosa:
Descrizione: Questo comando richiede all'utente di inserire qualcosa e memorizza l'input nella variabile di ambiente
`INGRESSO UTENTE`.
Esistono molte opzioni e funzionalità avanzate di
`SET`comando, incluse modifiche alle stringhe, utilizzo di variabili di ambiente negli script batch e altro ancora. A proposito di entrare
`SET /?`nel prompt dei comandi otterrai un elenco delle opzioni disponibili e informazioni più dettagliate.
"SET" Estratto dalla guida di Microsoft Windows
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\WINDOWS>
Visualizza, imposta o rimuove le variabili d'ambiente di cmd.exe.
SET [variabile=[stringa]]
variabile Specifica il nome della variabile d'ambiente.
stringa Specifica una serie di caratteri da assegnare alla
variabile.
Digitare SET senza parametri per visualizzare le variabili d'ambiente
correnti.
Se le estensioni ai comandi sono abilitate SET cambia come segue:
il comando SET richiamato con un solo nome di variabile, senza segno di
uguale o valore
visualizzerà il valore di tutte le variabili il cui prefisso
corrisponda al nome
dato al comando SET. Per esempio:
SET P
visualizzerà tutte le variabili che iniziano con la lettera "P"
Il comando SET imposterà ERRORLEVEL a 1 se il nome della variabile non
viene trovato
nell'ambiente corrente.
Il comando SET non consente che il segno uguale faccia parte del nome
di
una variabile.
Sono state aggiunte due nuove opzioni al comando SET:
SET /A espressione
SET /P variabile=[StringaPrompt]
L'opzione /A specifica che la stringa alla destra del segno uguale
è un'espressione numerica che viene calcolata. Il calcolo
dell'espressione
è semplice e supporta le seguenti operazioni, in ordine di
importanza decrescente:
() - raggruppamento
! ~ - - operatori aritmetici
+ - - operatori aritmetici
<< >> - shift logico
& - bitwise e
^ - bitwise esclusivo o
| - bitwise o
= *= /= %= += -= - assegnazione
&= ^= |= <<= >>=
, - separatore espressione
Se si utilizzano operatori logici o di moduli, sarà necessario
racchiudere la stringa dell'espressione entro virgolette. Le stringhe
non numeriche
nell'espressione vengono considerate come nomi di variabili di ambiente
i cui valori sono
convertiti in numeri prima che vengano utilizzati. Se un nome di
variabile di ambiente
è specificato ma non definito nell'ambiente corrente, allora si
utilizza
un valore di zero. Così è possibile eseguire operazioni aritmetiche
con
valori di variabili di ambiente senza dover digitare tutti i segni %
per ottenere i rispettivi
valori. Se SET /A viene eseguito dalla riga di comando al di fuori di
uno
script, verrà visualizzato il valore finale dell'espressione.
L'operatore
dell'assegnazione richiede un nome di variabile di ambiente alla
sinistra
dell'operatore di assegnazione. I valori numerici sono numeri
decimali, a meno che
non siano preceduti da 0x per numeri esadecimali e 0 per numeri ottali.
Così 0x12 è analogo a 18 analogo a 022. Ricordare che la notazione
ottale può generare confusione: 08 e 09 non sono numeri validi poiché 8
e
9 non sono cifre ottali valide.
L'opzione /P consente di impostare il valore di una variabile a una
riga di input
immessa dall'utente. Visualizza la StringaPrompt specificata prima di
leggere
la riga di input. La StringaPrompt può essere vuota.
La sostituzione delle variabili di ambiente è migliorata come segue:
%PATH:str1=str2%
espande la variabile di ambiente PATH, sostituendo ciascuna occorrenza
di "str1" nel risultato espanso con "str2". "str2" può essere la
stringa
vuota per eliminare tutte le occorrenze di "str1" dall'output prodotto
dall'espansione. "str1" può iniziare con un asterisco, e in tal caso
sarà corrispondente
al punto di inizio dell'output dell'espansione fino alla prima
occorrenza della parte restante di str1.
Può anche specificare sottostringhe per un'espansione.
%PATH:~10,5%
espande la variabile di ambiente PATH, e quindi utilizza solo i 5
caratteri che cominciano all'undicesimo (offset 10) carattere del
risultato
dell'espansione. Se la lunghezza non è specificata, per impostazione
predefinita va al
resto del valore della variabile. Se uno dei numeri(offset o
lunghezza) è
negativo, il numero utilizzato è il valore della lunghezza della
variabile di
ambiente sommato all'offset o lunghezza specificati.
%PATH:~-10%
estrae gli ultimi 10 caratteri della variabile PATH.
%PATH:~0,-2%
estrae tutti tranne gli ultimi 2 caratteri della variabile PATH.
Infine, è stato aggiunto il supporto per l'espansione ritardata delle
variabili
di ambiente. Il supporto è disabilitato per impostazione predefinita,
ma è possibile
abilitarlo o meno mediante l'opzione /V del comando CMD.EXE. Vedere
CMD /?
L'espansione ritardata della variabile di ambiente è utile per ovviare
alle
limitazioni dell'espansione corrente che si verificano quando viene
letta
una riga di testo, non quando viene eseguita. L'esempio seguente
dimostra il problema con un'espansione immediata:
impostare VAR=prima
se "%VAR%" == "prima" (
impostare VAR=dopo
se "%VAR%" == "dopo" @echo In questo caso, ha funzionato
)
non mostrerebbe il messaggio poiché %VAR% nelle istruzioni BOTH IF
statements
viene sostituito alla lettura della prima istruzione IF, poiché include
logicamente
il corpo di IF, che è un'istruzione composta. Pertanto,
IF all'interno dell'istruzione composta mette a confronto "prima" con
"dopo" che non saranno mai uguali. Analogamente, l'esempio seguente
non funziona come dovrebbe:
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%
in quanto NON crea un elenco di file nella directory corrente,
ma invece imposta la variabile LIST all'ultimo file trovato.
Nuovamente, questo avviene perché %LIST% viene espanso solo una volta
alla
lettura dell'istruzione FOR, e in quel momento la variabile LIST è
vuota.
Quindi il loop FOR che in realtà si sta eseguendo è:
for %i in (*) do set LIST= %i
che mantiene l'impostazione di LIST all'ultimo file trovato.
L'espansione ritardata delle variabili di ambiente consente di
utilizzare un carattere
differente (punto esclamativo) perr espandere le variabili di ambiente
al
momento dell'esecuzione. Se l'espansione ritardata delle variabili di
ambiene è abilitata, gli esempi appena
mostrati potrebbero essere riportati come segue per funzionare
correttamente:
set VAR=prima
if "%VAR%" == "prima" (
set VAR=dopo
if "!VAR!" == "dopo" @echo In questo caso, ha funzionato
)
set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%
Se le estensioni ai comandi sono abilitate, sono presenti molte
variabili di
ambiente dinamiche che è possibile espandere ma che non appaiono
nell'elenco
delle variabili mostrate da SET. Questi valori sono
calcolati dinamicamente ad ogni espansione delle variabili.
Se l'utente definisce esplicitamente una variabile con uno di questi
nomi,
questa definizione sovrascrive la definizione dinamica descritta di
seguito:
%CD% - espande alla stringa di directory corrente.
%DATE% - espande alla data corrente utilizzando lo stesso formato del
comando DATE.
%TIME% - espande all'ora corrente utilizzando lo stesso formato del
comando TIME.
%RANDOM% - espande a un numero decimale scelto a caso tra 0 e 32767.
%ERRORLEVEL% - espande al valore ERRORLEVEL corrente
%CMDEXTVERSION% - espande al numero di versione delle estensioni del
processore
di comando corrente.
%CMDCMDLINE% - espande alla riga di comando iniziale che ha invocato il
processore di comando.
Informazioni importanti, suggerimenti per il comando "SET"
Quando si utilizza il
`SET`comando nel prompt dei comandi di Windows, ci sono alcuni aspetti importanti da notare:
1.
Sostituzione delle variabili di ambiente: Se disponi di una variabile di ambiente con
`SET`Se crei una variabile di ambiente utilizzando lo stesso nome di una variabile di ambiente esistente, la variabile esistente verrà sovrascritta. Assicurati di volerlo fare per evitare effetti indesiderati.
SET ESISTENTE_VARIABLE=Nuovo valore
2.
Spazi nei valori: Quando si impostano valori con spazi nelle variabili di ambiente, è consigliabile racchiudere il valore tra virgolette doppie. Ciò aiuta a evitare problemi con l'interpretazione degli spazi.
SET VARIABLE_CON_SPAZIO="Valorizzare con gli spazi"
3.
Visualizza tutte le variabili d'ambiente: Basta inserirle
`SET`senza variabile specifica visualizza tutte le variabili di ambiente e i relativi valori. Ciò può essere utile per garantire che le modifiche siano state apportate come previsto.
SET
4.
Impostazione delle variabili di ambiente negli script batch: Se imposti le variabili di ambiente in uno script batch, tieni presente che l'accesso alla variabile verrà effettuato successivamente nello script
`%Variable%`lui segue.
SET NUOVO_VARIABLE=Contenuti
ECHO %NUOVO_VARIABLE%
5.
Input dell'utente con`SET /P`: Se tu
`SET /P`per l'input dell'utente, assicurati di chiedere chiaramente all'utente e di fornire istruzioni chiare per evitare confusione.
SET /P INGRESSO UTENTE=Inserisci qualcosa:
6.
Case Sensitivity: Tieni presente che le variabili di ambiente in genere non fanno distinzione tra maiuscole e minuscole. Significa che
`%Variable%`E
`%variable%`accedere allo stesso.
Questi suggerimenti dovrebbero assicurarti che
`SET`-Utilizzare i comandi in modo efficace e sicuro.