Condividi tramite


about_Function_Provider

Nome provider

Funzione

Unità

Function:

Funzionalità

ShouldProcess

Breve descrizione

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à funzione è 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 .

Il provider di funzioni espone l'archivio dati nell'unità Function: . Per usare le funzioni, è possibile modificare la posizione nell'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 come dir 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 l'accesso del dollaro alle parentesi graffe.

${function:Clear-Host}

Recupero di funzioni selezionate

Questo comando ottiene la funzione dall'unità manFunction: . Usa il Get-Item cmdlet per ottenere la funzione. L'operatore della pipeline (|) invia il risultato a Format-Table. Il -Wrap parametro indirizza il testo che non si adatta alla riga successiva. Il -Autosize parametro ridimensiona le colonne della tabella per contenere il testo.

Get-Item -Path man | Format-Table -Wrap -Autosize

Uso dei percorsi del provider di funzioni

Questi comandi ottengono entrambe 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à è possibile usare entrambi i Function: 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 si è nell'unità, è possibile omettere il nome dell'unità Function: .

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 funzione in modo che visualizzi l'ora prompt 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 un valore di None. Per modificare il valore della proprietà Options , usare Set-Item.

Copy-Item -Path Function:prompt -Destination Function:oldPrompt

Parametri dinamici

I parametri dinamici sono parametri di 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 in Constant.
  • Private: la funzione è visibile solo nell'ambito corrente
  • (non negli ambiti figlio).
  • ReadOnly: le proprietà della funzione non possono essere modificate, -Force ad eccezione del parametro . È possibile usare Remove-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.

Risorse 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à file system, eseguire un comando Get-Help in un'unità file system o usare il -Path parametro Get-Help per specificare un'unità file system.

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function:

Vedi anche