Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Nome do fornecedor
Função
Drives
Function:
Capabilities
Deve Processar
Breve descrição
Fornece acesso às funções definidas no PowerShell.
Descrição detalhada
O provedor do PowerShell Function 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 comando Where-Object.
A unidade Function é um namespace simples que contém apenas os objetos de função e filtro. Nem funções nem filtros têm subitens.
O provedor Function oferece suporte aos cmdlets a seguir, abordados neste artigo.
- Obter-Localização
- Set-Location
- Get-Item
- Novo Item
- Remover-Item
- Limpar-Item
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 de função Function: (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, digite:
Set-Location C:
Você também pode trabalhar com o fornecedor da função de em qualquer outra unidade do PowerShell. Para fazer referência a uma função de outro local, use o nome da unidade Function: no caminho.
Observação
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-ChildItem.
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 o seu caminho de fornecedor prefixado pelo sinal de dólar ($).
$Function:more
Para recuperar a definição de uma função que tenha 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 função man da unidade Function:. Ele usa o cmdlet Get-Item para obter a função. O operador do gasoduto (|) envia o resultado para Format-Table. O parâmetro -Wrap direciona o texto que não cabe na linha para a próxima linha. O parâmetro -AutoSize redimensiona as colunas da tabela para acomodar o texto.
Get-Item -Path man | Format-Table -Wrap -AutoSize
Trabalhando com caminhos de provedores de funções
Ambos os comandos recebem a função chamada C:. O primeiro comando pode ser usado em qualquer disco. O segundo comando é usado na unidade Function:. 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 Function:, você pode usar qualquer um dos 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 cmdlet New-Item para criar uma função chamada Win32:.
A expressão entre colchetes é 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 função more da sessão atual.
Remove-Item Function:more
Alterar uma função
Este comando usa o cmdlet Set-Item para alterar a função prompt 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 cmdlet Rename-Item para alterar o nome da função help 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 scripts associado à função de 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 Opções de , 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 Opções de uma função.
-
None: Sem opções.Noneé o padrão. -
Constant: A função não pode ser excluída e suas propriedades não podem ser alteradas.Constantestá disponível apenas quando você está criando 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 âmbitos filhos).
-
ReadOnly: As propriedades da função não podem ser alteradas, exceto usando o parâmetro-Force. Você pode usarRemove-Itempara excluir a função. -
AllScope: A função é copiada para quaisquer novos âmbitos que sejam criados.
Cmdlets suportados
Usando o pipeline
Os cmdlets do fornecedor aceitam entrada de pipeline. Você pode usar o pipeline para simplificar tarefas, enviando dados do provedor de um cmdlet para outro cmdlet. Para ler mais sobre como usar o pipeline com os cmdlets do fornecedor, consulte as referências aos cmdlets fornecidas ao longo deste artigo.
Obter ajuda
A partir do Windows PowerShell 3.0, pode-se obter tópicos de ajuda personalizados para cmdlets dos fornecedores que explicam como esses cmdlets se comportam numa unidade do sistema de ficheiros.
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 parâmetro -Path de Get-Help para especificar uma unidade do sistema de arquivos.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path Function: