À l'aide de Windows PowerShell, comment puis-je modifier l'invite de commande?
Par exemple, l'invite par défaut indique
PS C:\Documents and Settings\govendes\My Documents>
Je veux personnaliser cette chaîne.
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 " "
}
Lié à un commentaire à réponse d'Ocaso Protal , les éléments suivants sont nécessaires 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>"}
(Nous remercions David I. McIntosh pour celui-ci.)
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 que quelque chose le fasse pour vous, alors je recommande fortement Paquet Pshazz de Luke Sampson .
Juste pour vous montrer à quel point vous pouvez être paresseux, je vous fournirai un rapide 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. Découvrez le mien pour voir comme c'est facile!
À 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 joué un peu avec les couleurs.
Avec CMD, je me suis retrouvé 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 lieu de (idiot) Bloc-notes .Cette version de réponse de Warren Stevens évite le "Microsoft.PowerShell.Core\FileSystem" bruyant dans le chemin si vous Set-Location
aux partages réseau.
function Prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
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>"}