Odpowiedzi:
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
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żne function prompt {"PS " + (Get-Location) + ">"}
, a function prompt {""}
daje to samo co function 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.
>$profile
C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
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 .
%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ć:
Function Prompt { "$( ( get-item $pwd ).Name )>" }
Lub:
Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }
Lub:
Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }
\\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
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
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.
Poniższa pojedyncza linia działa dla mnie dobrze
(Get-Location | Get-Item) .Name
[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