programing

Windows PowerShell: 명령 프롬프트 변경

minimums 2023. 4. 8. 08:18
반응형

Windows PowerShell: 명령 프롬프트 변경

Windows PowerShell을 사용하여 명령 프롬프트를 변경하려면 어떻게 해야 합니까?

예를 들어 기본 프롬프트는 다음과 같습니다.

PS C:\Documents and Settings\govendes\My Documents>

나는 그 끈을 맞춤 제작하고 싶다.

기능을 넣기만 하면 됩니다.promptPowerShell 프로파일에서 (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

반응형