about_Function_Provider
Nome provider
Funzione
Unità
Function:
Funzionalità
ShouldProcess
Descrizione breve
Fornisce l'accesso alle funzioni definite in PowerShell.
Descrizione dettagliata
Il provider di funzioni di PowerShell consente di ottenere, aggiungere, modificare, cancellare ed eliminare le funzioni e i filtri in PowerShell.
Una funzione è un blocco denominato di codice che esegue un'azione. Se si digita il nome della funzione, viene eseguito il codice al suo interno. Un filtro è un blocco denominato di codice che stabilisce le condizioni per un'azione. È possibile digitare il nome del filtro al posto della condizione, ad esempio in un Where-Object
comando.
L'unità Function è uno spazio dei nomi flat che contiene solo la funzione e gli oggetti filtro. Le funzioni e i filtri non hanno elementi figlio.
Il provider di funzioni supporta i cmdlet seguenti, illustrati in questo articolo.
Tipi esposti da questo provider
Ogni funzione è un'istanza della classe System.Management.Automation.FunctionInfo . Ogni filtro è un'istanza della classe System.Management.Automation.FilterInfo .
Esplorazione dell'unità funzione
Il provider di funzioni espone l'archivio dati nell'unità Function:
. Per usare le funzioni, è possibile modificare la posizione dell'unità Function:
(Set-Location Function:
). In alternativa, è possibile lavorare da un'altra unità di PowerShell. Per fare riferimento a una funzione da un'altra posizione, usare il nome dell'unità (Function:
) nel percorso.
Set-Location Function:
Per tornare in un'unità di file system, digitare il relativo nome. Ad esempio, digitare il comando seguente:
Set-Location C:
È anche possibile usare il provider di funzioni da qualsiasi altra unità di PowerShell. Per fare riferimento a una funzione da un'altra posizione, usare il nome Function:
dell'unità nel percorso.
Nota
PowerShell usa gli alias per consentire un modo familiare per usare i percorsi del provider. I comandi, dir
ad esempio e ls
sono ora alias per Get-ChildItem, cd
è un alias per Set-Location. e pwd
è un alias per Get-Location.
Recupero di funzioni
Questo comando ottiene l'elenco di tutte le funzioni nella sessione corrente. È possibile usare questo comando da qualsiasi unità di PowerShell.
Get-ChildItem -Path Function:
Il provider di funzioni non ha contenitori, quindi il comando precedente ha lo stesso effetto quando viene usato con Get-ChildItem
.
Get-ChildItem -Path Function:
È possibile recuperare la definizione di una funzione accedendo alla proprietà Definition , come illustrato di seguito.
(Get-Item -Path function:more).Definition
È anche possibile recuperare la definizione di una funzione usando il relativo percorso del provider preceduto dal segno di dollaro ($
).
$function:more
Per recuperare la definizione per una funzione con un trattino (-
) nel nome, eseguire il wrapping del valore dopo le parentesi graffe del dollaro.
${function:Clear-Host}
Recupero di funzioni selezionate
Questo comando ottiene la man
funzione dall'unità Function:
. Usa il Get-Item
cmdlet per ottenere la funzione . L'operatore pipeline (|
) invia il risultato a Format-Table
. Il -Wrap
parametro indirizza il testo che non rientra nella riga successiva. Il -Autosize
parametro ridimensiona le colonne della tabella in modo da contenere il testo.
Get-Item -Path man | Format-Table -Wrap -Autosize
Uso dei percorsi del provider di funzioni
Questi comandi ottengono entrambi la funzione denominata c:
. Il primo comando può essere usato in qualsiasi unità. Il secondo comando viene usato nell'unità Function:
. Poiché il nome termina con due punti, che corrisponde alla sintassi di un'unità, è necessario usare il nome completo del percorso con il nome dell'unità. All'interno dell'unità Function:
è possibile usare entrambi i formati. Nel secondo comando il punto (.
) rappresenta la posizione corrente.
PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:
Creazione di una funzione
Questo comando usa il New-Item
cmdlet per creare una funzione denominata Win32:
.
L'espressione tra parentesi graffe corrisponde al blocco di script rappresentato dal nome della funzione.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
È anche possibile creare una funzione digitandola nella riga di comando di PowerShell. Ad esempio, tpe Function:Win32: {Set-Location C:\Windows\System32}
. Se ci si trova nell'unità Function:
, è possibile omettere il nome dell'unità.
Eliminazione di una funzione
Questo comando elimina la more
funzione dalla sessione corrente.
Remove-Item Function:more
Modifica di una funzione
Questo comando usa il Set-Item
cmdlet per modificare la prompt
funzione in modo che visualizzi l'ora prima del percorso.
Set-Item -Path Function:prompt -Value {
'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
}
Rinominare una funzione
Questo comando usa il Rename-Item
cmdlet per modificare il nome della help
funzione in gh
.
Rename-Item -Path Function:help -NewName gh
Copia di una funzione
Questo comando copia la prompt
funzione in oldPrompt
, creando in modo efficace un nuovo nome per il blocco di script associato alla funzione prompt.
È possibile usarlo per salvare la funzione prompt originale se si prevede di modificarla.
La proprietà Options della nuova funzione ha il valore .None
Per modificare il valore della proprietà Options , utilizzare Set-Item
.
Copy-Item -Path Function:prompt -Destination Function:oldPrompt
Parametri dinamici
I parametri dinamici sono parametri cmdlet aggiunti da un provider di PowerShell e sono disponibili solo quando il cmdlet viene usato nell'unità abilitata per il provider.
Opzioni <[System.Management.Automation.ScopedItemOptions]>
Determina il valore della proprietà Options di una funzione.
None
: nessuna opzione.None
è l'impostazione predefinita.Constant
: la funzione non può essere eliminata e le relative proprietà non possono essere modificate.Constant
è disponibile solo quando si crea una funzione. Non è possibile modificare l'opzione di una funzione esistente inConstant
.Private
: la funzione è visibile solo nell'ambito corrente- (non negli ambiti figlio).
ReadOnly
: le proprietà della funzione non possono essere modificate, ad eccezione del-Force
parametro . È possibile usareRemove-Item
per eliminare la funzione.AllScope
: la funzione viene copiata in tutti i nuovi ambiti creati.
Cmdlet supportati
Uso della pipeline
I cmdlet del provider accettano l'input della pipeline. È possibile usare la pipeline per semplificare l'attività inviando i dati del provider da un cmdlet a un altro cmdlet del provider. Per altre informazioni su come usare la pipeline con i cmdlet del provider, vedere i riferimenti ai cmdlet forniti in questo articolo.
Visualizzazione delle informazioni della Guida
A partire da Windows PowerShell 3.0, è possibile ottenere argomenti della Guida personalizzati per i cmdlet del provider che ne illustrano il comportamento in un'unità di file system.
Per ottenere gli argomenti della Guida personalizzati per l'unità del file system, eseguire un comando Get-Help in un'unità file system o usare il -Path
parametro Get-Help per specificare un'unità del file system.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function: