Powershell로 직전의 처리의 성공 여부를 알기 쉽게 하려고 +α
8701 단어 PowerShell
소개
안녕하세요, 아사나 결이라고 합니다. Windows에서 개발을 시작한 분은 이제 이제 명령 프롬프트를 놓치기 시작했을 때라고 생각하지만 Powershell은 프롬프트 문자열을 쉽게 조작 할 수 있다는 것을 알고 계십니까? 이번에는 평소 자신이 사용하고 있는 Powershell의 Prompt 설정을 보여드리겠습니다.
환경
환경은 PS7입니다.
> $PSVersionTable
Name Value
---- -----
PSVersion 7.0.0
PSEdition Core
GitCommitId 7.0.0
OS Microsoft Windows 10.0.18363
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
문자의 표시의 색을 만지기 때문에
Write-Host
가 기능하는 터미널로 합시다.이런 느낌입니다.
이하의 Prompt 함수를
$Profile
에 추가하면function Prompt {
$result = $?
$here = Convert-Path .
$rand = Get-Random 4
$good_words = @("..", "ok", "sure", "well")
$bad_words = @("..", "bad", "what?", "idk")
Write-Host "[${env:username}]${here}" -NoNewLine
if ($result) {
Write-Host " (PS'-')$($good_words[$rand])" -NoNewLine -ForegroundColor "Green"
} else {
Write-Host " (PS'-')$($bad_words[$rand])" -NoNewLine -ForegroundColor "Red"
}
return "`n> "
}
이런 감기가 됩니다.
오른쪽의 불애상한 캐릭터가 전의 처리의 성부를 가르쳐 주는 것이군요. 여기에서는 각 부분의 해설입니다.
이전 처리의 결과 얻기
이하의 변수로부터 취득할 수 있습니다. Prompt 함수 내에서 한 번 변수에 넣는 것은 Prompt 내의 처리에서
$?
의 값이 다시 쓰여지기 때문입니다.> $?
True
현재 디렉토리의 경로 얻기
아마 이
Convert-Path
로부터 상대 패스 .
를 풀 패스로 변환해 버리는 것이 가장 간단하다고 생각합니다.> Convert-Path .
C:\
캐릭터에게 말하고 싶다.
이건 별로 없어도 좋지만 귀엽기 때문에 합니다. 성공했을 때의 말과 실패했을 때의 말을 각각 준비해, 캐릭터의 뒤에 붙입니다.
$rand = Get-Random 4
$good_words = @("..", "ok", "sure", "well")
$bad_words = @("..", "bad", "what?", "idk")
사용자 이름 가져오기
완전히 Bash의 영향인 생각이 듭니다만, 어딘지 모르게 침착하므로 붙여 둡니다.
> $env:username
What is return "`n>"?
Prompt 함수는 반환 값으로 문자열을 예상하므로 붙입니다. Powershell에서는 개행 문자는. 조금 전의
\n
로 출력되고 있던 캐릭터 라인으로부터 개행을 걸어 `n
를 표시하고 있는 느낌이군요.return "`n> "
결국 어디에 쓰면 좋을까?
산뜻하게 흘려 버렸기 때문에 만약을 위해.
-NoNewLine
변수에는 현재 사용중인 Powershell 프로파일의 경로가 들어 있습니다. Bash의 >
같은 것이군요. 여기에 작성된 함수, 별칭, cmdlet 및 변수는 미리 실행 및 정의된 상태로 시작됩니다.> $Profile
#C:\Usersからはじまり.ps1で終わる何らかのファイルのパス
결론
수고하셨습니다. 잘 실행할 수 있었습니까?
$Profile
가 비추천으로 되어 있는 것 같고, 여러가지 환경에서 테스트하고 있지 않기 때문에 약간 불안합니다. 그래도 어떤 도움이 되었으면 좋겠습니다. 여기까지 읽어 주셔서 감사합니다.다음 몇 책 이런가, 장편이라고 할까 몇 가지로 나누어 쓰고 싶은 재료가 있으므로 그것 쓸지도.
Reference
이 문제에 관하여(Powershell로 직전의 처리의 성공 여부를 알기 쉽게 하려고 +α), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/asana_yui/items/e3ee1b6c262ea74397fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)