Me refiero a entrar en mi mensaje de PS 5.1.
~\Documents
en lugar de
C:\Users\USER1\Documents
Pero al probar uno de los "bloques de construcción" aparece un error
> $($executionContext.SessionState.Path.CurrentLocation) -replace $env:USERPROFILE, '~'
The regular expression pattern C:\Users\USER1 is not valid.
At line:1 char:3
...
Quiero incluir esto en
$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"
}
¿Cómo debo escapar $env:USERPROFILE
para que esto funcione?
¿Funcionaría eso dentro de mi prompt
?
Respuesta1
Esto hará el reemplazo que estás buscando:
($executionContext.SessionState.Path.CurrentLocation).ToString().Replace($env:USERPROFILE, '~')
Respuesta2
Tal vez desee utilizar cadenas de formato para expandir la variable dentro del reemplazo de Regex:
$($executionContext.SessionState.Path.CurrentLocation) -replace ("{0}" -f $env:USERPROFILE), '~'
Respuesta3
Podría tener problemas si se mueve por encima de su directorio $HOME. Si siempre quieres el último elemento de la ruta, usaría uno de los siguientes:
'~\{0} -f ($executionContext.SessionState.Path.CurrentLocation).Path.Split('\')[-1]
'~\{0}' -f (Split-Path ($executionContext.SessionState.Path.CurrentLocation).Path -Leaf)