Chciałbym, aby bieżący katalog roboczy był wyświetlany w wierszu polecenia programu PowerShell, tak jak byłoby to w przypadku (na przykład) monitu CMD. Jak mogę to zrobić?
Chciałbym, aby bieżący katalog roboczy był wyświetlany w wierszu polecenia programu PowerShell, tak jak byłoby to w przypadku (na przykład) monitu CMD. Jak mogę to zrobić?
Odpowiedzi:
Sprawdź to: http://mshforfun.blogspot.com/2006/05/perfect-prompt-for-windows-powershell.html
Zasadniczo możesz utworzyć plik „profilu” o nazwie Microsoft.PowerShell_profile.ps1, który będzie uruchamiany przy każdym uruchomieniu programu PowerShell.
W zależności od tego, dla kogo ma być uruchamiany, istnieje kilka folderów, w których można umieścić ten plik (wyjaśniono w linku powyżej). Jeśli jest to tylko dla ciebie, możesz utworzyć folder o nazwie WindowsPowerShell w folderze Moje dokumenty i tam go umieścić.
Jeśli umieścisz tę funkcję w tym pliku:
function prompt
{
"PS " + $(get-location) + "> "
}
Sprawi, że twój monit będzie wyglądał następująco:
PS C:\directory\path\here>
Można włożyć wiele innych rzeczy, ale to są podstawy.
UWAGA: zanim będzie można użyć skryptu profilu, należy uruchomić polecenie „set-wykonaniapolicy remotesigned” z programu PowerShell - pozwoli to na uruchamianie niepodpisanych skryptów napisanych lokalnie na komputerze i podpisanych skryptów innych osób.
$profile.CurrentUserCurrentHost
i $profile.CurrentUserCurrentHost
sprawdź, jakie skrypty profilowe (użytkownika) są prawidłowe. Różni gospodarze (np. VS vs. ISE) mają inną wartość$profile.CurrentUserCurrentHost
Spróbuj wykonać następujące czynności:
$CurrentDir = $(get-location).Path;
Obecnie działa to dobrze:
echo "$PWD"
który działa inaczej niż
echo $PWD
Po prostu nie zapomnij o cudzysłowach :) Przykładowe dane wyjściowe poniżej.
PS C:\Users\user name> echo $PWD
Path
----
C:\Users\user name
PS C:\Users\user name> echo "$PWD"
C:\Users\user name
PS C:\Users\user name>
(Get-Item -Path ".\").FullName