Come ottenere gli argomenti della riga di comando in Windows PowerShell
- Definire i parametri nello script PowerShell
- Parametri nominati nello script PowerShell
- Assegnare valori predefiniti ai parametri nello script PowerShell
- Parametri switch nello script PowerShell
- Parametri obbligatori nello script PowerShell

Gestiamo gli argomenti utilizzando la funzione di parametro di Windows PowerShell chiamata param()
. La funzione di parametro di Windows PowerShell è un componente fondamentale di qualsiasi script. Un parametro è il modo in cui gli sviluppatori consentono agli utenti degli script di fornire input durante l’esecuzione.
In questo articolo, imparerai come creare script con la funzione di parametro, usarli e alcune buone pratiche per costruire i parametri.
Definire i parametri nello script PowerShell
Gli amministratori possono creare parametri per script e funzioni utilizzando la funzione di parametro param()
. Una funzione contiene uno o più parametri definiti da variabili.
Hello_World.ps1
:
param(
$message
)
Tuttavia, per garantire che il parametro accetti solo il tipo di input di cui hai bisogno, le buone pratiche prevedono di assegnare un tipo di dati al parametro utilizzando un blocco di parametri [Parameter()]
e racchiudendo il tipo di dati tra parentesi quadre []
prima della variabile.
Hello_World.ps1
:
param(
[Parameter()]
[String]$message
)
Nell’esempio Hello_World.ps1
sopra, la variabile message
accetterà solo un valore passato se il valore fornito ha un tipo di dati String
.
Parametri nominati nello script PowerShell
Un modo per utilizzare la funzione di parametro in uno script è tramite il nome del parametro: questo metodo è chiamato parametri nominati. Quando chiamiamo uno script o una funzione tramite parametri nominati, utilizziamo il nome della variabile come nome completo del parametro.
Abbiamo creato un Hello_World.ps1
e definito variabili all’interno della funzione di parametro in questo esempio. Ricorda che possiamo mettere una o più variabili all’interno della funzione di parametro.
Hello_World.ps1
:
param(
[Parameter()]
[String]$message,
[String]$emotion
)
Write-Output $message
Write-Output "I am $emotion"
Possiamo quindi utilizzare i parametri nominati come argomento quando eseguiamo un file .ps1
.
.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy'
Output:
Hello World!
I am happy
Assegnare valori predefiniti ai parametri nello script PowerShell
Possiamo assegnare un valore predefinito a un parametro dando al parametro un valore all’interno dello script. Quindi, eseguendo lo script senza passare valori dalla riga di esecuzione, il valore predefinito della variabile definita all’interno dello script verrà utilizzato.
param(
[Parameter()]
[String]$message = "Hello World",
[String]$emotion = "happy"
)
Write-Output $message
Write-Output "I am $emotion"
.\Hello_World.ps1
Output:
Hello World!
I am happy
Parametri switch nello script PowerShell
Un altro parametro che possiamo utilizzare è il parametro switch definito dal tipo di dati [switch]
. Il parametro switch è utilizzato per valori binari o Booleani per indicare true
o false
.
Hello_World.ps1
:
param(
[Parameter()]
[String]$message,
[String]$emotion,
[Switch]$display
)
if ($display) {
Write-Output $message
Write-Output "I am $emotion"
}
else {
Write-Output "User denied confirmation."
}
Possiamo chiamare il nostro script con il parametro dello script utilizzando la sintassi qui sotto.
.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy' -display:$false
Output:
User denied confirmation.
Parametri obbligatori nello script PowerShell
È comune avere uno o più parametri che devono essere utilizzati quando uno script viene eseguito. Possiamo rendere un parametro obbligatorio aggiungendo un attributo Mandatory
all’interno del blocco di parametro [Parameter()]
.
Hello_World.ps1:
param(
[Parameter(Mandatory)]
[String]$message,
[String]$emotion,
[Switch]$display
)
if ($display) {
Write-Output $message
Write-Output "I am $emotion"
}
else {
Write-Output "User denied confirmation."
}
Quando esegui Hello_World.ps1
, Windows PowerShell non consentirà l’esecuzione dello script e ti chiederà un valore.
.\Hello_World.ps1
Output:
cmdlet hello_world.ps1 at command pipeline position 1
Supply values for the following parameters:
message:
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn