Establecer $ HOME en PowerShell


29

¿Cómo cambio mi directorio de inicio predeterminado a "C: \ Users \ khornsby" por cada vez que abro powershell?

Estoy ejecutando Windows 7. A continuación se muestra información sobre el estado de mi entorno.

Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. Todos los derechos reservados.

PS P: \> cd ~
PS P: \>echo $HOME
PAGS:\
PS P: \> HOME="C:\Users\khornsby"
El término 'HOME = C: \ Users \ khornsby' no se reconoce como el nombre de un cmdlet,
función, archivo de script o programa operable. Verifique la ortografía del nombre, o
si se incluyó una ruta, verifique que la ruta sea correcta e intente nuevamente.
En línea: 1 char: 25
+ HOME = "C: \ Users \ khornsby" 

PS P: \> Set-Variable HOME "C:\Users\khornsby"
Set-Variable: no se puede sobrescribir la variable HOME porque es de solo lectura o
constante.
En línea: 1 char: 13
+ Conjunto-Variable 

PS P: \> dir env:home*

Nombre Valor
---- -----
HOGAR \
HOMEDRIVE P:
HOMESHARE \\ fileserv \ khornsby $


PS P: \>

2
¿Cómo formateaste tu publicación? Me gusta cómo se resalta lo que escribiste.
Jay Bazuzi

3
Usé la <kbd>etiqueta.
kzh

Respuestas:


27

La variable se lee solo de forma predeterminada, pero se puede eliminar con el -Forceinterruptor a Remove-Variable. Para que su cambio sea persistente en las sesiones, puede crear un archivo de perfil que se parezca mucho a .bashrc(Para bash en Linux), excepto Powershell.

En su directorio Documentos (normalmente C:\Users\YOUR_USERNAME_HERE\documents) para su cuenta de usuario, cree una carpeta WindowsPowerShell (nombrada exactamente así) si aún no existe una. Dentro de la carpeta, cree un archivo de texto llamado profile.ps1 ( asegúrese de que no sea profile.ps1.txt ).

Dentro del archivo, coloque todo lo que desee ejecutar cuando abra Powershell.

ejemplo:

Write-Host "Hi John, welcome back!"
Remove-Variable -Force HOME
Set-Variable HOME "C:\Users\khornsby"

resultado:

texto alternativo


1
También puede ejecutar el script en el inicio desde un acceso directo, apuntando a: %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -ExecutionPolicy bypass -File C:\foo\profile.ps1
paradroid

1
Intenté esto, y cambia con éxito el valor de $ HOME. Pero "cd ~" todavía cambia obstinadamente a la ubicación original.
Weeble

2
@Weeble, mira mi respuesta para anular el acceso directo ~.
ulty4life

9

Para abordar la preocupación de @Weeble sobre el ~acceso directo:

$HOMEDRIVE = "C:\"
$HOMEPATH = "Users\" + $env:username

# Set and force overwrite of the $HOME variable
Set-Variable HOME "$HOMEDRIVE$HOMEPATH" -Force

# Set the "~" shortcut value for the FileSystem provider
(get-psprovider 'FileSystem').Home = $HOMEDRIVE + $HOMEPATH

Vea aquí la distinción entre ~ y $ HOME


1
vale la pena agregar cd $HOMEal final, por lo que el shell comenzará en esa ubicación y estará listo para su uso :)
Eliran Malka

5

Aún más fácil ... abre la configuración avanzada del sistema ...

 C:\> systempropertiesadvanced

Agregue una nueva variable del sistema llamada HOME con la ruta a su perfil

ingrese la descripción de la imagen aquí

Reinicie el explorador o cierre la sesión y vuelva a iniciarla ...

PS C:\> $Env:home 
--- 

3
Esto no hace lo que la pregunta pregunta. Esto establece la variable de entorno $ env: HOME, no la variable Powershell $ HOME. La variable Powershell $ HOME parece derivarse de las variables de entorno $ env: HOMEDRIVE y $ env: HOMEPATH en el momento en que se inicia el proceso Powershell. Es $ HOME el que determina el comportamiento de "cd ~".
Weeble

2
Lo siento, esa última declaración no es del todo cierta. $ HOME y el comportamiento de "cd ~" parecen coincidir con los valores de las variables de entorno HOMEDRIVE y HOMEPATH cuando se inicia el proceso Powershell. Posteriormente, cambiar cualquiera de estas variables / variables de entorno parece no tener efecto en el directorio elegido por "cd ~".
Weeble

Funciona bien para mí ... No sé lo que estás haciendo de manera diferente.
Eddie B

3

Para cambiar desde Windows, intente lo siguiente:

  • Pin PowerShell a la barra de tareas.

  • Haga clic derecho en el icono de PowerShell en la barra de tareas.

  • Haga clic derecho en 'Windows PowerShell' y seleccione 'Propiedades'.

  • Dentro de la ventana 'Propiedades', vaya a la pestaña 'Acceso directo' y cambie el campo 'Iniciar en:' al directorio de inicio deseado. (Ejemplo: ).C:\Users\username\Desktop

  • Haga clic en Aceptar'.

  • Inicie PowerShell desde la barra de tareas.

    barra de tareas

    Ventana de propiedades


no funciona cuando selecciona 'ejecutar como administrador'
devi

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.