PS 5.1 프롬프트를 표시하려고 합니다.
~\Documents
대신에
C:\Users\USER1\Documents
하지만 "구성 요소" 중 하나를 시도하는 동안 오류가 발생합니다.
> $($executionContext.SessionState.Path.CurrentLocation) -replace $env:USERPROFILE, '~'
The regular expression pattern C:\Users\USER1 is not valid.
At line:1 char:3
...
이것을 포함시키겠다는 뜻이다
$ESC = [char]27
$BLUE="$ESC[1;34m"
$RESET="$ESC[0m"
function prompt
{
$cwd = $($executionContext.SessionState.Path.CurrentLocation) ;
# $my_new_var=USE THE REPLACING COMMAND
"$BLUE$my_new_var$('>' * ($nestedPromptLevel + 1)) $RESET"
}
$env:USERPROFILE
이것이 작동하려면 어떻게 탈출해야합니까 ?
그게 내 내에서 작동할까요 prompt
?
답변1
이렇게 하면 원하는 대체 작업이 수행됩니다.
($executionContext.SessionState.Path.CurrentLocation).ToString().Replace($env:USERPROFILE, '~')
답변2
어쩌면 형식 문자열을 사용하여 Regex 교체 내에서 변수를 확장하고 싶을 수도 있습니다.
$($executionContext.SessionState.Path.CurrentLocation) -replace ("{0}" -f $env:USERPROFILE), '~'
답변3
$HOME 디렉터리 위로 이동하면 문제가 발생할 수 있습니다. 항상 경로의 마지막 요소를 원하는 경우 다음 중 하나를 사용합니다.
'~\{0} -f ($executionContext.SessionState.Path.CurrentLocation).Path.Split('\')[-1]
'~\{0}' -f (Split-Path ($executionContext.SessionState.Path.CurrentLocation).Path -Leaf)