Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Nome do fornecedor
Function
Drives
Function:
Capabilities
DeveProcessar
Breve descrição
Fornece acesso às funções definidas no PowerShell.
Descrição detalhada
O provedor de Função do PowerShell permite obter, adicionar, alterar, limpar e excluir as funções e filtros no PowerShell.
Uma função é um bloco de código nomeado que executa uma ação. Quando você digita o nome da função, o código na função é executado. Um filtro é um bloco de código nomeado que estabelece condições para uma ação. Você pode digitar o nome do filtro no lugar da condição, como em um Where-Object comando.
A unidade de função é um namespace simples que contém apenas os objetos de função e filtro. Nem funções nem filtros têm itens filho.
O provedor de função oferece suporte aos cmdlets a seguir, que são abordados neste artigo.
Tipos expostos por este provedor
Cada função é uma instância da classe System.Management.Automation.FunctionInfo . Cada filtro é uma instância da classe System.Management.Automation.FilterInfo .
Navegando na unidade de função
O provedor de função expõe seu armazenamento de dados na Function: unidade. Para trabalhar com funções, pode alterar a sua localização para a Function: unidade (Set-Location Function:). Ou, você pode trabalhar a partir de outra unidade do PowerShell. Para fazer referência a uma função de outro local, use o nome da unidade (Function:) no caminho.
Set-Location Function:
Para retornar a uma unidade do sistema de arquivos, digite o nome da unidade. Por exemplo, escreva:
Set-Location C:
Você também pode trabalhar com o provedor de função de qualquer outra unidade do PowerShell. Para fazer referência a uma função de outro local, use o nome Function: da unidade no caminho.
Nota
O PowerShell usa aliases para permitir uma maneira familiar de trabalhar com caminhos de provedor. Comandos como dir e ls agora são aliases para Get-ChildItem, cd é um alias para Set-Location e pwd é um alias para Get-Location.
Obter funções
Este comando obtém a lista de todas as funções na sessão atual. Você pode usar esse comando de qualquer unidade do PowerShell.
Get-ChildItem -Path Function:
O provedor de função não tem contêineres, portanto, o comando acima tem o mesmo efeito quando usado com Get-ChildItemo .
Get-ChildItem -Path Function:
Você pode recuperar a definição de uma função acessando a propriedade Definition , conforme mostrado abaixo.
(Get-Item -Path Function:more).Definition
Você também pode recuperar a definição de uma função usando seu caminho de provedor prefixado pelo cifrão ($).
$Function:more
Para recuperar a definição de uma função que tem um traço (-) no nome, envolva o valor após o cifrão em chaves encaracoladas.
${Function:Clear-Host}
Obter funções selecionadas
Este comando obtém a man função da Function: unidade. Ele usa o Get-Item cmdlet para obter a função. O operador do gasoduto (|) envia o resultado para Format-Table. O -Wrap parâmetro direciona o texto que não cabe na linha para a próxima linha. O -AutoSize parâmetro redimensiona as colunas da tabela para acomodar o texto.
Get-Item -Path man | Format-Table -Wrap -AutoSize
Trabalhando com caminhos do provedor de função
Ambos os comandos recebem a função chamada C:. O primeiro comando pode ser usado em qualquer unidade. O segundo comando é usado na Function: unidade. Como o nome termina em dois pontos, que é a sintaxe de uma unidade, você deve qualificar o caminho com o nome da unidade. Dentro da unidade, você pode usar qualquer um dos Function: formatos. No segundo comando, o ponto (.) representa o local atual.
PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:
Criando uma função
Este comando usa o New-Item cmdlet para criar uma função chamada Win32:.
A expressão entre chaves é o bloco de script representado pelo nome da função.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
Âmbitos
Assim como as variáveis, as funções pertencem a um escopo específico. Quando você cria uma função, ela está disponível somente no escopo em que foi criada. Para disponibilizar uma função, use um modificador de escopo ao criar a função. Para obter mais informações, consulte about_Scopes.
O exemplo a seguir usa o modificador de escopo Global: para criar uma função no escopo global.
function New-Function {
param(
[string] $Name,
[scriptblock] $Script
)
$lp = "Function:\Global:$($Name)"
Set-Item -LiteralPath $lp -Value $Script -PassThru -Force
}
New-Function -Name 'Win32:' -Script { Set-Location C:\Windows\System32 }
Sem o modificador de escopo Global:, a função seria criada no escopo local. Quando New-Function sai, a função recém-criada não existirá mais.
Eliminar uma função
Este comando exclui a more função da sessão atual.
Remove-Item Function:more
Alterar uma função
Este comando usa o Set-Item cmdlet para alterar a prompt função para que ela exiba o tempo antes do caminho.
Set-Item -Path Function:prompt -Value {
'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
}
Renomear uma função
Este comando usa o Rename-Item cmdlet para alterar o help nome da função para gh.
Rename-Item -Path Function:help -NewName gh
Copiar uma função
Este comando copia a prompt função para oldPrompt, criando efetivamente um novo nome para o bloco de script associado à função prompt.
Você pode usar isso para salvar a função de prompt original se você planeja alterá-la.
A propriedade Options da nova função tem um valor de None. Para alterar o valor da propriedade Options , use Set-Item.
Copy-Item -Path Function:prompt -Destination Function:oldPrompt
Parâmetros dinâmicos
Parâmetros dinâmicos são parâmetros de cmdlet adicionados por um provedor do PowerShell e estão disponíveis somente quando o cmdlet está sendo usado na unidade habilitada para provedor.
Opções <[System.Management.Automation.ScopedItemOptions]>
Determina o valor da propriedade Options de uma função.
-
None: Sem opções.Noneé a predefinição. -
Constant: A função não pode ser excluída e suas propriedades não podem ser alteradas.Constantestá disponível apenas quando está a criar uma função. Não é possível alterar a opção de uma função existente paraConstant. -
Private: A função é visível apenas no âmbito atual - (não em escopos filho).
-
ReadOnly: As propriedades da função não podem ser alteradas, exceto usando o-Forceparâmetro. Você pode usarRemove-Itempara excluir a função. -
AllScope: A função é copiada para todos os novos escopos criados.
Cmdlets suportados
Usando o pipeline
Os cmdlets do provedor aceitam entrada de pipeline. Você pode usar o pipeline para simplificar a tarefa enviando dados do provedor de um cmdlet para outro cmdlet do provedor. Para ler mais sobre como usar o pipeline com cmdlets de provedor, consulte as referências de cmdlet fornecidas ao longo deste artigo.
Obter ajuda
A partir do Windows PowerShell 3.0, você pode obter tópicos de ajuda personalizados para cmdlets de provedor que explicam como esses cmdlets se comportam em uma unidade do sistema de arquivos.
Para obter os tópicos de ajuda personalizados para a unidade do sistema de arquivos, execute um comando Get-Help em uma unidade do sistema de arquivos ou use o -Path parâmetro Get-Help para especificar uma unidade do sistema de arquivos.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path Function: