Usando o Windows PowerShell, como altero o prompt de comando?
Por exemplo, o prompt padrão diz
PS C:\Documents and Settings\govendes\My Documents>
Eu quero personalizar essa string.
Respostas:
Basta colocar a função promptem seu perfil do PowerShell ( notepad $PROFILE), por exemplo:
function prompt {"PS: $(get-date)>"}
ou colorido:
function prompt
{
Write-Host ("PS " + $(get-date) +">") -nonewline -foregroundcolor White
return " "
}
new-item -itemtype file -path $profile -force
Set-ExecutionPolicy RemoteSigned.
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestrictedse você deseja apenas alterar para o usuário atual ou não pode executar como administrador.
Relacionado a um comentário à resposta de Ocaso Protal , o seguinte é necessário para o Windows Server 2012, bem como o Windows 7 (em uma janela do PowerShell):
new-item -itemtype file -path $profile -force
notepad $PROFILE
Eu sugeriria o seguinte como um prompt se você executar com vários nomes de usuário (por exemplo, você + um login de produção):
function Global:prompt {"PS [$Env:username]$PWD`n>"}
(O crédito vai para David I. McIntosh por este.)
Set-ExecutionPolicy RemoteSigned.
No prompt, gosto de um carimbo de data / hora atual e letras de unidade resolvidas para unidades de rede. Para torná-lo mais legível, coloquei-o em duas linhas e brinquei um pouco com as cores.
Com o CMD, acabei com
PROMPT=$E[33m$D$T$H$H$H$S$E[37m$M$_$E[1m$P$G
Para PowerShell, obtive o mesmo resultado com:
function prompt {
$dateTime = get-date -Format "dd.MM.yyyy HH:mm:ss"
$currentDirectory = $(Get-Location)
$UncRoot = $currentDirectory.Drive.DisplayRoot
write-host "$dateTime" -NoNewline -ForegroundColor White
write-host " $UncRoot" -ForegroundColor Gray
# Convert-Path needed for pure UNC-locations
write-host "PS $(Convert-Path $currentDirectory)>" -NoNewline -ForegroundColor Yellow
return " "
}
O que é um pouco mais legível :-)
BTW:
powershell_ise.exe $PROFILEvez do bloco de notas (burro) .Se você quiser fazer isso sozinho, a resposta de Ocaso Protal é o caminho a percorrer. Mas se você é preguiçoso como eu e só quer algo para fazer isso por você, então recomendo o pacote Pshazz de Luke Sampson .
Só para mostrar como você pode ser preguiçoso, vou fornecer um tutorial rápido.
scoop install pshazz)pshazz use msys)O Pshazz também permite que você crie seus próprios temas, o que é tão simples quanto configurar um arquivo JSON. Confira o meu para ver como é fácil!
Para mostrar apenas a letra da unidade que uso:
function prompt {(get-location).drive.name+"\...>"}
Então, para voltar ao caminho que uso:
function prompt {"$pwd>"}
Esta versão da resposta de Warren Stevens evita o ruidoso "Microsoft.PowerShell.Core \ FileSystem" no caminho se você Set-Locationcompartilha a rede.
function prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
notepad $PROFILEnão funciona no Windows 7 a partir de um prompt de administração do PowerShell