Мне бы хотелось, чтобы текущий рабочий каталог отображался в командной строке powershell, как это будет сделано в (например) приглашении CMD. Как я могу это сделать?
Мне бы хотелось, чтобы текущий рабочий каталог отображался в командной строке powershell, как это будет сделано в (например) приглашении CMD. Как я могу это сделать?
Ответы:
Проверьте это: http://mshforfun.blogspot.com/2006/05/perfect-prompt-for-windows-powershell.html
По сути, вы можете создать файл профиля с именем Microsoft.PowerShell_profile.ps1, который будет запускаться каждый раз, когда вы запускаете powershell.
В зависимости от того, для кого вы хотите его запустить, есть несколько папок, в которые вы можете поместить этот файл (объяснение по ссылке выше). Если это только для вас, вы можете создать папку с именем WindowsPowerShell в папке «Мои документы» и поместить ее туда.
Если вы поместите эту функцию в этот файл:
function prompt
{
"PS " + $(get-location) + "> "
}
Это заставит ваш запрос выглядеть так:
PS C:\directory\path\here>
Есть много других вещей, которые вы можете вставить в это, но это основы.
ПРИМЕЧАНИЕ: прежде чем вы сможете использовать скрипт профиля, вам нужно запустить «set-executepolicy remotesigned» из powershell - это позволит вам запускать неподписанные сценарии, написанные локально на компьютере, и подписанные сценарии от других.
$profile.CurrentUserCurrentHost
и $profile.CurrentUserCurrentHost
посмотрите, какие сценарии профиля (пользователя) являются действительными. Разные хосты (например, VS против ISE) имеют разное значение для$profile.CurrentUserCurrentHost
Попробуйте следующее:
$CurrentDir = $(get-location).Path;
В настоящее время это работает отлично:
echo "$PWD"
который работает иначе, чем
echo $PWD
Только не забудьте про кавычки :) Пример вывода ниже.
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