Musisz dostosować funkcję pytania w swoim profilu PowerShell ( %userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
); może być pusty lub nawet nie istnieć, jeśli nigdy go wcześniej nie modyfikowałeś.
Otwórz swój profil (np. Otwórz wyżej wspomniany plik lub w PowerShell, Notepad $profile
)
Dodaj następujące elementy do swojego profilu:
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Zapisz profil
Uruchom ponownie PowerShell
Opcjonalny . Jeśli pojawi się komunikat informujący, że nie wolno uruchamiać skryptów, musisz skopiować / wkleić ten wiersz w programie PowerShell:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
i uruchom ponownie.
Zasady wykonywania programu Windows PowerShell pozwalają określić warunki, w których program Windows PowerShell ładuje pliki konfiguracyjne i uruchamia skrypty.
Możesz ustawić zasady wykonywania dla komputera lokalnego, dla bieżącego użytkownika lub dla konkretnej sesji. Możesz także użyć ustawienia zasad grupy, aby ustawić zasady wykonywania dla komputerów i użytkowników.
Źródło: Dokumentacja Microsoft
[System.IO.Directory]::GetCurrentDirectory()
nie reprezentuje bieżącej lokalizacji programu PowerShell, ale raczej katalog roboczy procesu, które nie zawsze są takie same. Zamień naGet-Location
GetCurrentDirectory
. Pamiętaj, że PowerShell nie zawsze oznacza system plików. Korzystając z przystawki rejestru, mogłem skorzystać,cd hkcu:
a teraz monit byłby całkowicie wyłączony.$PWD
zamiast dzwonićGet-Location
. Np.function prompt { (Split-Path -Leaf $pwd) + '> ' }
prompt
w pliku profilu. Musi to być tylko globalny zakres sesji. Domyślnie wydaje się równoważnefunction prompt {"PS " + (Get-Location) + ">"}
, afunction prompt {""}
daje to samo cofunction prompt {"PS>"}
. Użyj,function prompt {" `b"}
aby uzyskać pusty monit (przynajmniej wizualnie ...).Dodatkowo, nie mogłem wykonać polecenia @ Synetech, dopóki nie utworzyłem profilu $.
Wpisz
$profile
i naciśnij Enter. Spowoduje to wyświetlenie ścieżki profilu, na której opiera się PowerShell, nawet jeśli nie istnieje (nie dla mnie). Moja ścieżka była inna niż powyższa @Synetech.Musiałem utworzyć zarówno folder WindowsPowerShell, jak i plik Microsoft.PowerShell_profile.ps1.
Uwaga:
Jeśli używasz posh-git (który jest instalowany podczas korzystania z pulpitu GitHub), skrypt @ Synetech zastąpi monit posh-git. Dodatkowe skrypty zachęty dla posh-git tutaj .
źródło
%userprofile%
rozwija się doC:\Users\[username]
$Env:userprofile
jest odpowiednikiemecho %userprofile%
Zmień monit, aby wyświetlić bieżący folder bez pełnej ścieżki i większej niż symbol na końcu:
Jednym ze sposobów może być:
Lub:
Lub:
źródło
\\myserver\my\path
.Odkryłem, że było to dość łatwe - połączenie odpowiedzi @ Synetech i informacji znalezionych w profilach PowerShell . Ponieważ jestem nowicjuszem w PS. Moje kroki (dla vscode):
wklej
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser (na twój monit PS, z odpowiedzi SuperUse)
przeładuj vscode
Więc głównie odpowiedź @ Synetech (poprawiona) z odrobiną łatwego rozpoczęcia - szczególnie krok 2 sprawia, że jest to bardzo łatwe.
źródło
Poniższa pojedyncza linia działa dla mnie dobrze
(Get-Location | Get-Item) .Name
źródło