À l'aide de Windows PowerShell, comment modifier l'invite de commande?
Par exemple, l'invite par défaut dit
PS C:\Documents and Settings\govendes\My Documents>
Je souhaite personnaliser cette chaîne.
Réponses:
Mettez simplement la fonction prompt
dans votre profil PowerShell ( notepad $PROFILE
), par exemple:
function prompt {"PS: $(get-date)>"}
ou coloré:
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 Unrestricted
si vous ne souhaitez modifier que pour l'utilisateur actuel ou ne pouvez pas exécuter en tant qu'administrateur
Lié à un commentaire sur la réponse d'Ocaso Protal , ce qui suit est nécessaire pour Windows Server 2012 ainsi que Windows 7 (dans une fenêtre PowerShell):
new-item -itemtype file -path $profile -force
notepad $PROFILE
Je suggérerais ce qui suit comme invite si vous exécutez avec plusieurs noms d'utilisateur (par exemple vous-même + une connexion de production):
function Global:prompt {"PS [$Env:username]$PWD`n>"}
(Le mérite revient à David I. McIntosh pour celui-ci.)
Set-ExecutionPolicy RemoteSigned
.
À l'invite, j'aime un horodatage actuel et des lettres de lecteur résolues pour les lecteurs réseau. Pour le rendre plus lisible, je l'ai mis en deux lignes, et j'ai joué un peu avec les couleurs.
Avec CMD, j'ai fini avec
PROMPT=$E[33m$D$T$H$H$H$S$E[37m$M$_$E[1m$P$G
Pour PowerShell, j'ai obtenu le même résultat avec:
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 " "
}
Ce qui est un peu plus lisible :-)
BTW:
powershell_ise.exe $PROFILE
au bloc-notes (stupide) .Si vous voulez le faire vous-même, alors la réponse d'Ocaso Protal est la voie à suivre. Mais si vous êtes paresseux comme moi et que vous voulez juste quelque chose à faire pour vous, alors je recommande vivement le package Pshazz de Luke Sampson .
Juste pour vous montrer à quel point vous pouvez être paresseux, je vais vous fournir un bref tutoriel.
scoop install pshazz
)pshazz use msys
)Pshazz vous permet également de créer vos propres thèmes, ce qui est aussi simple que de configurer un fichier JSON. Regardez le mien pour voir à quel point c'est facile!
Pour afficher simplement la lettre de lecteur que j'utilise:
function prompt {(get-location).drive.name+"\...>"}
Ensuite, pour revenir au chemin que j'utilise:
function prompt {"$pwd>"}
Cette version de la réponse de Warren Stevens évite le bruyant «Microsoft.PowerShell.Core \ FileSystem» dans le chemin si vous accédez Set-Location
aux partages réseau.
function prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
notepad $PROFILE
ne fonctionne pas dans Windows 7 à partir d'une invite d'administration