Condividi tramite


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 .

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 in Constant.
  • 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 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.

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:

Vedi anche