Wie ändere ich unter Windows PowerShell die Eingabeaufforderung?
In der Standardaufforderung heißt es beispielsweise
PS C:\Documents and Settings\govendes\My Documents>
Ich möchte diese Zeichenfolge anpassen.
Antworten:
Fügen Sie die Funktion einfach promptin Ihr PowerShell-Profil ( notepad $PROFILE) ein, z.
function prompt {"PS: $(get-date)>"}
oder farbig:
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 Unrestrictedwenn Sie nur für den aktuellen Benutzer ändern möchten oder nicht als Administrator ausgeführt werden können.
Im Zusammenhang mit einem Kommentar zur Antwort von Ocaso Protal wird für Windows Server 2012 sowie Windows 7 (in einem PowerShell-Fenster) Folgendes benötigt:
new-item -itemtype file -path $profile -force
notepad $PROFILE
Ich würde Folgendes als Eingabeaufforderung vorschlagen, wenn Sie mit mehreren Benutzernamen (z. B. sich selbst + einem Produktions-Login) arbeiten:
function Global:prompt {"PS [$Env:username]$PWD`n>"}
(Gutschrift geht an David I. McIntosh für diesen einen.)
Set-ExecutionPolicy RemoteSigned.
An der Eingabeaufforderung gefällt mir ein aktueller Zeitstempel und aufgelöste Laufwerksbuchstaben für Netzwerklaufwerke. Um es besser lesbar zu machen, habe ich es in zwei Zeilen eingefügt und ein bisschen mit Farben gespielt.
Mit CMD endete ich mit
PROMPT=$E[33m$D$T$H$H$H$S$E[37m$M$_$E[1m$P$G
Für PowerShell habe ich das gleiche Ergebnis erzielt mit:
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 " "
}
Welches ist etwas besser lesbar :-)
Übrigens:
powershell_ise.exe $PROFILEanstelle von (dummem) Notizblock .Wenn Sie es selbst tun möchten, ist die Antwort von Ocaso Protal der richtige Weg. Aber wenn Sie so faul sind wie ich und nur etwas für Sie tun möchten, dann empfehle ich das Pshazz-Paket von Luke Sampson .
Um Ihnen zu zeigen, wie faul Sie sein können, werde ich ein kurzes Tutorial bereitstellen.
scoop install pshazz)pshazz use msys)Mit Pshazz können Sie auch eigene Themen erstellen. Dies ist so einfach wie das Konfigurieren einer JSON-Datei. Schauen Sie sich meine an, um zu sehen, wie einfach es ist!
Um nur den Laufwerksbuchstaben anzuzeigen, den ich verwende:
function prompt {(get-location).drive.name+"\...>"}
Um dann zu dem Pfad zurückzukehren, den ich benutze:
function prompt {"$pwd>"}
Diese Version der Antwort von Warren Stevens vermeidet das laute "Microsoft.PowerShell.Core \ FileSystem" im Pfad, wenn Sie Set-LocationNetzwerkfreigaben verwenden.
function prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
notepad $PROFILEfunktioniert nicht in Windows 7 über eine Admin-Powershell-Eingabeaufforderung