답변:
PowerShell 프로필 ( %userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
) 에서 프롬프트 기능을 사용자 지정해야합니다 . 이전에 수정 한 적이 없으면 비어 있거나 없을 수도 있습니다.
프로필을 엽니 다 (예 : 위에서 언급 한 파일을 열거 나 PowerShell에있는 동안 Notepad $profile
)
프로필에 다음을 추가하십시오.
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
프로필 저장
PowerShell을 다시 시작
선택 사항 . 스크립트를 실행할 수 없다는 메시지가 표시되면 PowerShell에서이 줄을 복사 / 붙여 넣기해야합니다.
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
다시 시작하십시오.
Windows PowerShell 실행 정책을 통해 Windows PowerShell이 구성 파일을로드하고 스크립트를 실행하는 조건을 결정할 수 있습니다.
로컬 컴퓨터, 현재 사용자 또는 특정 세션에 대한 실행 정책을 설정할 수 있습니다. 그룹 정책 설정을 사용하여 컴퓨터 및 사용자에 대한 실행 정책을 설정할 수도 있습니다.
출처 : Microsoft 설명서
GetCurrentDirectory
합니다. PowerShell이 항상 파일 시스템을 의미하는 것은 아닙니다. 레지스트리 스냅인을 사용하면 사용할 수 cd hkcu:
있으며 이제 프롬프트가 완전히 해제됩니다.
$PWD
을 호출 하는 대신 사용할 수도 있습니다 Get-Location
. 예function prompt { (Split-Path -Leaf $pwd) + '> ' }
prompt
프로파일 파일에서 정의 할 필요는 없습니다 . 글로벌 세션 범위 내에 있어야합니다. 기본값은 동등 보인다 function prompt {"PS " + (Get-Location) + ">"}
반면, function prompt {""}
같은 수 있습니다 function prompt {"PS>"}
. function prompt {" `b"}
빈 프롬프트를 얻는 데 사용하십시오 (적어도 시각적으로 ...).
추가로, $ profile을 처음 만들 때까지 @Synetech의 명령을 수행 할 수 없었습니다.
입력 $profile
하고 Enter를 누르십시오. PowerShell이 존재하지 않더라도 PowerShell이 의존하는 프로필 경로가 표시됩니다 (나에게 적합하지 않음). 내 경로는 @Synetech이 위에 게시 한 것과 다릅니다.
>$profile
C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
WindowsPowerShell 폴더와 Microsoft.PowerShell_profile.ps1 파일을 모두 만들어야했습니다.
노트 :
posh-git (GitHub 데스크탑 사용시 설치)을 사용하는 경우 @Synetech의 스크립트는 posh-git 프롬프트를 무시합니다. posh-git에 대한 추가 프롬프트 스크립트 here .
%userprofile%
C:\Users\[username]
$Env:userprofile
동등하다echo %userprofile%
전체 경로가없고 끝에서 기호보다 큰 현재 폴더를 표시하도록 프롬프트를 변경하십시오.
한 가지 방법은 다음과 같습니다.
Function Prompt { "$( ( get-item $pwd ).Name )>" }
또는:
Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }
또는:
Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }
\\myserver\my\path
.
@Synetech의 답변과 PowerShell 프로필 에서 찾은 정보를 결합하는 것이 매우 쉽다는 것을 알았습니다 . 나는 PS의 초보자이기 때문에. 내 단계 (vscode의 경우) :
붙여 넣기
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser (PS 프롬프트에서 SuperUse 답변)
vscode 재로드
따라서 대부분 쉽게 시작할 수있는 @Synetech의 답변 (공개됨)-특히 2 단계는 매우 쉽습니다.
[System.IO.Directory]::GetCurrentDirectory()
Powershell의 현재 위치를 나타내는 것이 아니라 프로세스 작업 디렉토리를 나타내며 항상 동일한 것은 아닙니다. 다음으로 교체Get-Location