In der cmd-Shell ist es möglich, die Eingabeaufforderung mit dem Befehl PROMPT usw. festzulegen (und zu speichern). Wenn Sie jedoch von cmd aus in Powershell gehen, wird die standardmäßige Windows-Eingabeaufforderung wiederhergestellt – normalerweise das aktuelle Verzeichnis.
Gibt es eine Möglichkeit, Powershell zu zwingen, die aktuelle Windows-Eingabeaufforderung zu verwenden?
Antwort1
Dank der sehr hilfreichen Kommentare funktioniert es. Nur für den Fall, dass jemand anderes auf das gleiche Problem stößt:
$profile
Gibt den Speicherort an, an dem das Powershell-Profil vorhanden ist (oder vorhanden sein würde). Wenn esnichtexistiert, würde der folgende Befehl es erstellen:
new-item -itemtype file -path $profile -force
Hier können wir einfach eine Eingabeaufforderungsfunktion schreiben. Ich stelle meine normalerweise auf den aktuellen Benutzer ein, also:
function prompt {"PS: $(echo 'RobbieDee')>"}
Antwort2
Prompt
wird global eingestellt über%UserProfile%\Documents\WindowsPowerShell\profile.ps1
ohne Farbe:
Function set-prompt { "$ESC[$($executionContext.SessionState.Path.CurrentLocation)$('$' * ($nestedPromptLevel + 1)) $ESC[0m" }
mit Farbe:
switch ($Action) { "Default" { Function global:prompt { if (test-path variable:/PSDebugContext) { '[DBG]: ' } write-host " " write-host ("$ESC[48;2;40;40;40m$ESC[38;2;170;210;0m$(Get-Location) $ESC[0m $ESC[0m") if ( $host.UI.RawUI.WindowTitle -match "Administrator" ) { $Host.UI.RawUI.ForegroundColor = 'Red' $(if ($nestedpromptlevel -ge 1) { write-host ('PS $$ ') -ForegroundColor Red -NoNewLine } else { write-host ('PS $ ') -ForegroundColor Red -NoNewLine }) } else { $(if ($nestedpromptlevel -ge 1) { write-host ('PS $$ ') -ForegroundColor Blue -NoNewLine } else { write-host ('PS $ ') -ForegroundColor Blue -NoNewLine }) } return " " } } } set-prompt Default
- Zeigen Sie dem Benutzer eine Eingabeaufforderung mit farbigem Text und einem Administrator eine Eingabeaufforderung mit rotem Text an.
- Ermöglicht das schnelle Wechseln zwischen Profilen:
Default
Abschnitt darunter kopieren/einfügen und entsprechend bearbeiten(inkl. Name, zBDefault
). Sitzung neu laden und Eingabeaufforderung überset-prompt Default
|| wechselnset-prompt <name>