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.
Breve descrição
Descreve a Prompt função e demonstra como criar uma Prompt função personalizada.
Longa descrição
O pedido de comando PowerShell indica que o PowerShell está pronto para executar um comando:
PS C:\>
A solicitação PowerShell é determinada pela Prompt função incorporada. Pode personalizar o pedido criando a sua própria Prompt função e guardando-a no seu perfil PowerShell.
Sobre a função Prompt
A Prompt função determina o aparecimento da solicitação PowerShell.
O PowerShell vem com uma Prompt função incorporada, mas pode sobrepor-se definindo a sua própria Prompt função.
A Prompt função tem a seguinte sintaxe:
function Prompt { <function-body> }
A Prompt função deve devolver um objeto. Como uma boa prática, devolva uma corda ou um objeto que é formatado como uma corda. O comprimento máximo recomendado é de 80 caracteres.
Por exemplo, a seguinte Prompt função devolve uma corda "Olá, Mundo" seguida de um suporte de ângulo reto > ().
PS C:\> function prompt {"Hello, World > "}
Hello, World >
Obtenção da função 'Solicitação'
Para obter a Prompt função, utilize o Get-Command cmdlet ou utilize o Get-Item cmdlet na unidade Função.
Por exemplo:
PS C:\> Get-Command Prompt
CommandType Name ModuleName
----------- ---- ----------
Function prompt
Para obter o script que define o valor do pedido, use o método do ponto para obter a propriedade ScriptBlock da Prompt função.
Por exemplo:
(Get-Command Prompt).ScriptBlock
"PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) "
# .Link
# https://go.microsoft.com/fwlink/?LinkID=225750
# .ExternalHelp System.Management.Automation.dll-help.xml
Como todas as funções, a Prompt função é armazenada na Function: unidade.
Para exibir o script que cria a Prompt função atual, escreva:
(Get-Item function:prompt).ScriptBlock
A solicitação predefinido
A indicação por defeito só aparece quando a Prompt função gera um erro ou não devolve um objeto.
A solicitação padrão do PowerShell é:
PS>
Por exemplo, o seguinte comando define Prompt a função para $null , o que é inválido. Como resultado, aparece a solicitação por defeito.
PS C:\> function prompt {$null}
PS>
Como o PowerShell vem com uma solicitação incorporada, normalmente não se vê a padrão.
Solicitação incorporada
PowerShell inclui uma Prompt função incorporada.
function prompt {
$(if (Test-Path variable:/PSDebugContext) { '[DBG]: ' }
else { '' }) + 'PS ' + $(Get-Location) +
$(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
}
A função utiliza o Test-Path cmdlet para determinar se a $PSDebugContext variável automática está povoada. Se $PSDebugContext estiver povoado, está em modo de depurar e [DBG]: é adicionado ao pedido, da seguinte forma:
[DBG]: PS C:\ps-test>
Se $PSDebugContext não estiver povoada, a função PS adiciona-se ao pedido.
E, a função usa o Get-Location cmdlet para obter a localização do diretório do sistema de ficheiros atual. Em seguida, adiciona um suporte de ângulo reto > ().
Por exemplo:
PS C:\ps-test>
Se estiver num ponto aninhado, a função adiciona dois suportes angulares >> () à indicação. (Está numa solicitação aninhada se o valor da variável automática for superior a $NestedPromptLevel 1.)
Por exemplo, quando estiver a depurar num pedido aninhado, o pedido assemelha-se ao seguinte aviso:
[DBG] PS C:\ps-test>>>
Alterações na solicitação
O Enter-PSSession cmdlet prepara o nome do computador remoto para a Prompt função atual. Quando utiliza o Enter-PSSession cmdlet para iniciar uma sessão com um computador remoto, o comando solicita alterações para incluir o nome do computador remoto. Por exemplo:
PS Hello, World> Enter-PSSession Server01
[Server01]: PS Hello, World>
Outras aplicações de anfitriões PowerShell e conchas alternativas podem ter as suas próprias indicações de comando personalizadas.
Para obter mais informações sobre as $PSDebugContext variáveis e $NestedPromptLevel automáticas, consulte about_Automatic_Variables.
Como personalizar o pedido
Para personalizar o pedido, escreva uma nova Prompt função. A função não está protegida, por isso pode substituir-se.
Para escrever uma Prompt função, digite o seguinte:
function prompt { }
Em seguida, entre os aparelhos, introduza os comandos ou a corda que cria o seu pedido.
Por exemplo, o seguinte pedido inclui o nome do seu computador:
function prompt {"PS [$env:COMPUTERNAME]> "}
No computador Server01, o pedido assemelha-se ao seguinte pedido:
PS [Server01] >
A seguinte Prompt função inclui a data e hora atuais:
function prompt {"$(Get-Date)> "}
O pedido assemelha-se ao seguinte pedido:
03/15/2012 17:49:47>
Também pode alterar a Prompt função predefinida:
Por exemplo, a seguinte função modificada Prompt [ADMIN]: adiciona-se à solicitação powerShell incorporada quando o PowerShell é aberto utilizando a opção Run como administrador:
function prompt {
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = [Security.Principal.WindowsPrincipal] $identity
$(if (Test-Path variable:/PSDebugContext) { '[DBG]: ' }
elseif($principal.IsInRole([Security.Principal.WindowsBuiltInRole]
"Administrator")) { "[ADMIN]: " }
else { '' }
) + 'PS ' + $(Get-Location) +
$(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
}
Quando inicia o PowerShell utilizando a opção Run como administrador, aparece uma indicação que se assemelha ao seguinte pedido:
[ADMIN]: PS C:\ps-test>
A Prompt seguinte função mostra o ID histórico do comando seguinte. Para ver o histórico de comando, use o Get-History cmdlet.
function prompt {
# The at sign creates an array in case only one history item exists.
$history = @(Get-History)
if($history.Count -gt 0)
{
$lastItem = $history[$history.Count - 1]
$lastId = $lastItem.Id
}
$nextCommand = $lastId + 1
$currentDirectory = Get-Location
"PS: $nextCommand $currentDirectory >"
}
O seguinte pedido utiliza os Write-Host Get-Random cmdlets e os cmdlets para criar um pedido que muda de cor aleatoriamente. Porque Write-Host escreve para a aplicação do anfitrião atual mas não devolve um objeto, esta função inclui uma Return declaração. Sem isso, o PowerShell utiliza a origem padrão, PS> .
function prompt {
$color = Get-Random -Min 1 -Max 16
Write-Host ("PS " + $(Get-Location) +">") -NoNewLine `
-ForegroundColor $Color
return " "
}
Guardar a função 'Solicitação'
Como qualquer função, a Prompt função existe apenas na sessão atual. Para guardar a Prompt função para sessões futuras, adicione-a aos perfis PowerShell. Para obter mais informações sobre perfis, consulte about_Profiles.