Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Descrição curta
Descreve a Prompt função e demonstra como criar uma função personalizada Prompt .
Descrição longa
O prompt de comando do PowerShell indica que o PowerShell está pronto para executar um comando:
PS C:\>
O prompt do PowerShell é determinado pela função interna Prompt . Você pode personalizar o prompt criando sua própria Prompt função e salvando-a em seu perfil do PowerShell.
Sobre a função Prompt
A função Prompt determina a aparência do prompt do PowerShell.
O PowerShell vem com uma função Prompt interna, mas você pode substituí-la definindo sua própria função Prompt.
A função Prompt tem a seguinte sintaxe:
function Prompt { <function-body> }
A função Prompt deve retornar um objeto. Como prática recomendada, retorne uma cadeia de caracteres ou um objeto formatado como uma cadeia de caracteres. O comprimento máximo recomendado é de 80 caracteres.
Por exemplo, a função Prompt a seguir retorna uma cadeia de caracteres "Olá, Mundo" seguida por um colchete de ângulo reto (>).
PS C:\> function prompt {"Hello, World > "}
Hello, World >
Obtendo a função Prompt
Para obter a função Prompt, use o cmdlet Get-Command ou use o cmdlet Get-Item na unidade de função.
Por exemplo:
PS C:\> Get-Command Prompt
CommandType Name ModuleName
----------- ---- ----------
Function prompt
Para obter o script que define o valor do prompt, use o método dot para obter a propriedade ScriptBlock da função Prompt.
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 função Prompt é armazenada na unidade Function:.
Para exibir o script que cria a função Prompt atual, digite:
(Get-Item function:prompt).ScriptBlock
O prompt padrão
O prompt padrão aparece somente quando a Prompt função gera um erro ou não retorna um objeto.
O prompt padrão do PowerShell é:
PS>
Por exemplo, o comando a seguir define a função Prompt como $null, o que é inválido. Como resultado, o prompt padrão é exibido.
PS C:\> function prompt {$null}
PS>
Como o PowerShell vem com um prompt interno, você geralmente não vê o prompt padrão.
Prompt interno
O PowerShell inclui uma função de Prompt interna.
function prompt {
$(if (Test-Path variable:/PSDebugContext) { '[DBG]: ' }
else { '' }) + 'PS ' + $(Get-Location) +
$(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
}
A função usa o Test-Path cmdlet para determinar se a $PSDebugContext variável automática está preenchida. Se $PSDebugContext for preenchido, você estará no modo de depuração e [DBG]: será adicionado ao prompt, da seguinte maneira:
[DBG]: PS C:\ps-test>
Se $PSDebugContext não for preenchido, a função será adicionada PS ao prompt.
Além disso, a função usa o cmdlet Get-Location para obter o local atual do diretório do sistema de arquivos. Em seguida, ele adiciona um colchete de ângulo reto (>).
Por exemplo:
PS C:\ps-test>
Se você estiver em um prompt aninhado, a função adicionará dois colchetes angulares (>>) ao prompt. (Você está em um prompt aninhado se o valor da $NestedPromptLevel variável automática for maior que 1.)
Por exemplo, quando você está depurando em um prompt aninhado, o prompt se assemelha ao seguinte prompt:
[DBG] PS C:\ps-test>>>
Alterações no prompt
O cmdlet Enter-PSSession acrescenta o nome do computador remoto à função de Prompt atual. Quando você usa o cmdlet Enter-PSSession para iniciar uma sessão com um computador remoto, o prompt de comando muda para incluir o nome do computador remoto. Por exemplo:
PS Hello, World> Enter-PSSession Server01
[Server01]: PS Hello, World>
Outros aplicativos host do PowerShell e shells alternativos podem ter seus próprios prompts de comando personalizados.
Para obter mais informações sobre as variáveis automáticas $PSDebugContext e $NestedPromptLevel, consulte about_Automatic_Variables.
Como personalizar o prompt
Para personalizar o prompt, escreva uma nova função Prompt. A função não está protegida, portanto, você pode substituí-la.
Para gravar uma função Prompt, digite o seguinte:
function prompt { }
Em seguida, entre as chaves, insira os comandos ou a cadeia de caracteres que cria o prompt.
Por exemplo, o prompt a seguir inclui o nome do computador:
function prompt {"PS [$env:COMPUTERNAME]> "}
No computador Server01, o prompt é semelhante ao seguinte prompt:
PS [Server01] >
A seguinte função Prompt inclui a data e a hora atuais:
function prompt {"$(Get-Date)> "}
O prompt se assemelha ao seguinte prompt:
03/15/2012 17:49:47>
Você também pode alterar a função de Prompt padrão:
Por exemplo, a seguinte função modificada Prompt é adicionada [ADMIN]: ao prompt interno do PowerShell quando o PowerShell é aberto usando a opção Executar 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 você inicia o PowerShell usando a opção Executar como administrador , um prompt semelhante ao seguinte prompt é exibido:
[ADMIN]: PS C:\ps-test>
A função Prompt a seguir exibe a ID do histórico do próximo comando. Para exibir o histórico de comandos, use o cmdlet Get-History.
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 prompt a seguir usa os cmdlets Write-Host e Get-Random para criar um prompt que altera a cor aleatoriamente. Como Write-Host grava no aplicativo host atual, mas não retorna um objeto, essa função inclui uma Return instrução. Sem ele, o PowerShell usa o prompt padrão, PS>.
function prompt {
$color = Get-Random -Min 1 -Max 16
Write-Host ("PS " + $(Get-Location) +">") -NoNewLine `
-ForegroundColor $Color
return " "
}
Salvando a função Prompt
Como qualquer função, a função Prompt existe apenas na sessão atual. Para salvar a função Prompt para sessões futuras, adicione-a aos seus perfis do PowerShell. Para obter mais informações sobre perfis, consulte about_Profiles.