Windows PowerShell: 명령 프롬프트 변경
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 " "
}
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>"}
(David I의 공로입니다.이것은 McIntosh입니다.)
프롬프트에서 네트워크 드라이브의 현재 타임스탬프와 해결된 드라이브 문자가 표시됩니다.좀 더 읽기 쉽게 두 줄에 넣고 색칠을 조금 했어요.
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 " "
}
어느 쪽이 읽기 쉬운가:-)
BTW:
- 나는 더 좋다
powershell_ise.exe $PROFILE
(dumb) 메모장 대신. - 중단점을 사용하여 프롬프트()를 디버깅하려면 프롬프트 함수의 이름을 다른 이름으로 변경해야 합니다(또는 다른 파일에서 시도해 보십시오).그렇지 않으면 루프가 발생할 수 있습니다.디버깅을 정지하면 프롬프트()가 다시 호출되고 중단점에서 정지합니다.처음에는 좀 짜증나지만...
당신이 직접 하고 싶다면, 오카소 프로탈의 대답이 방법이에요.하지만 나처럼 게으르고 뭔가를 해주고 싶다면 루크 샘슨의 Pshazz 패키지를 적극 추천한다.
얼마나 게으른지 보여드리기 위해 간단한 튜토리얼을 제공해 드리겠습니다.
- Pshazz with Scoop 설치(
scoop install pshazz
) - 미리 정의된 테마를 사용합니다(
pshazz use msys
) - 맥주를 마시다
Pshazz는 JSON 파일을 구성하는 것만큼이나 간단한 자신만의 테마를 만들 수도 있습니다.내 거 봐 얼마나 쉬운지!
사용하는 드라이브 문자만 표시하려면:
function prompt {(get-location).drive.name+"\...>"}
그런 다음 사용하는 경로로 되돌리려면:
function prompt {"$pwd>"}
Warren Stevens의 이 답변 버전은 시끄러운 "Microsoft"를 피합니다.PowerShell.Core\FileSystem"을 경로로 만듭니다.Set-Location
네트워크 공유에 접속합니다.
function prompt {"PS [$Env:username@$Env:computername]$($PWD.ProviderPath)`n> "}
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 YELLOW
write-host " $UncRoot" -ForegroundColor White
# Convert-Path needed for pure UNC-locations
write-host "$ENV:COMPUTERNAME-PS:$(Convert-Path $currentDirectory)>" -NoNewline -ForegroundColor GREEN
return " "
}
...그러면 다음과 같이 됩니다.
myservername-C:\Users\myusername\Documents\WindowsPowerShell\scripts>
드디어! :)
언급URL : https://stackoverflow.com/questions/5725888/windows-powershell-changing-the-command-prompt
'programing' 카테고리의 다른 글
부유 원소의 부모가 무너지지 않게 하려면 어떻게 해야 하나요? (0) | 2023.04.08 |
---|---|
div의 내용을 맨 아래에 정렬하는 방법 (0) | 2023.04.08 |
PSCustom Object에서 해시 테이블로 (0) | 2023.04.08 |
클러스터된 인덱스 및 비클러스터된 인덱스는 실제로 무엇을 의미합니까? (0) | 2023.04.08 |
HTML에 minlength validation 속성이 있습니까? (0) | 2023.04.08 |