Jak za pomocą programu Windows PowerShell zmienić wiersz polecenia?
Na przykład domyślny monit mówi
PS C:\Documents and Settings\govendes\My Documents>
Chcę dostosować ten ciąg.
Odpowiedzi:
Po prostu umieść funkcję prompt
w swoim profilu PowerShell ( notepad $PROFILE
), np:
function prompt {"PS: $(get-date)>"}
lub kolorowe:
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
jeśli chcesz zmienić tylko dla bieżącego użytkownika lub nie możesz działać jako administrator.
W związku z komentarzem do odpowiedzi Ocaso Protal , potrzebne są następujące elementy dla systemu Windows Server 2012, a także Windows 7 (w oknie PowerShell):
new-item -itemtype file -path $profile -force
notepad $PROFILE
Sugerowałbym następujące podpowiedź, jeśli uruchamiasz z wieloma nazwami użytkowników (np. Ty + login produkcyjny):
function Global:prompt {"PS [$Env:username]$PWD`n>"}
(To zasługa Davida I. McIntosha).
Set-ExecutionPolicy RemoteSigned
.
Po monicie podoba mi się aktualna sygnatura czasowa i rozwiązane litery dysków dla dysków sieciowych. Aby było bardziej czytelne, umieściłem to w dwóch wierszach i trochę pobawiłem się kolorami.
Z CMD skończyłem z
PROMPT=$E[33m$D$T$H$H$H$S$E[37m$M$_$E[1m$P$G
W przypadku PowerShell otrzymałem ten sam wynik z:
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 " "
}
Co jest trochę bardziej czytelne :-)
BTW:
powershell_ise.exe $PROFILE
zamiast (głupiego) Notatnika .Jeśli chcesz to zrobić sam, odpowiedz Ocaso Protal jest do zrobienia. Ale jeśli jesteś leniwy jak ja i po prostu chcesz coś zrobić za Ciebie, to bardzo polecam pakiet Pshazz Luke'a Sampsona .
Aby pokazać, jak bardzo możesz być leniwy, przedstawię krótki samouczek.
scoop install pshazz
)pshazz use msys
)Pshazz umożliwia również tworzenie własnych motywów, co jest tak proste, jak konfiguracja pliku JSON. Zajrzyj do mojego, aby zobaczyć, jakie to proste!
Aby pokazać tylko literę dysku, której używam:
function prompt {(get-location).drive.name+"\...>"}
Następnie, aby powrócić do ścieżki, której używam:
function prompt {"$pwd>"}
Ta wersja odpowiedzi Warrena Stevensa pozwala uniknąć hałaśliwego „Microsoft.PowerShell.Core \ FileSystem” na ścieżce dostępu Set-Location
do udziałów sieciowych.
function prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
notepad $PROFILE
nie działa w systemie Windows 7 z wiersza polecenia administratora programu PowerShell