Як змінити командний рядок за допомогою Windows PowerShell?
Наприклад, у запиті за замовчуванням сказано
PS C:\Documents and Settings\govendes\My Documents>
Я хочу налаштувати цей рядок.
Відповіді:
Просто вставте функцію prompt
у свій профіль PowerShell ( notepad $PROFILE
), наприклад:
function prompt {"PS: $(get-date)>"}
або кольорові:
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
якщо ви хочете змінитись лише для поточного користувача або не можете працювати як адміністратор.
Що стосується коментаря до відповіді Ocaso Protal , для Windows Server 2012, а також Windows 7 (у вікні PowerShell) потрібно наступне:
new-item -itemtype file -path $profile -force
notepad $PROFILE
Я б запропонував наступне як підказку, якщо ви запускаєте з декількома іменами користувачів (наприклад, ви + виробничий логін):
function Global:prompt {"PS [$Env:username]$PWD`n>"}
(За це заслуга Девіда І. Макінтоша.)
Set-ExecutionPolicy RemoteSigned
.
У підказці мені подобається поточна позначка часу та розв’язані літери дисків для мережевих дисків. Щоб зробити його більш читабельним, я склав його у два рядки та трохи пограв із кольорами.
З CMD я закінчив
PROMPT=$E[33m$D$T$H$H$H$S$E[37m$M$_$E[1m$P$G
Для PowerShell я отримав той самий результат із:
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 " "
}
Що трохи читабельніше :-)
ДО:
powershell_ise.exe $PROFILE
замість (німого) Блокнота .Якщо ви хочете зробити це самостійно, тоді відповідь Окасо Протала - це шлях. Але якщо ви ледачі, як я, і просто хочете, щоб щось для вас зробили, то я настійно рекомендую пакет Pshazz Люка Семпсона .
Щоб показати вам, яким ледачим ви можете бути, я надам короткий підручник.
scoop install pshazz
)pshazz use msys
)Pshazz також дозволяє створювати власні теми, що настільки просто, як налаштування файлу JSON. Перевірте мій, щоб побачити, наскільки це просто!
Щоб просто показати букву диска, яку я використовую:
function prompt {(get-location).drive.name+"\...>"}
Потім, щоб повернутися до шляху, який я використовую:
function prompt {"$pwd>"}
Ця версія відповіді Уорена Стівенса дозволяє уникнути галасливого "Microsoft.PowerShell.Core \ FileSystem" на шляху Set-Location
до мережевих спільних ресурсів.
function prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
notepad $PROFILE
не працює в Windows 7 із запиту адміністратора PowerShell