¿Hay alguna forma de cambiar la ubicación predeterminada de PowerShell?
¿Cómo se configura el directorio de trabajo predeterminado de PowerShell?
¿Hay alguna forma de cambiar la ubicación predeterminada de PowerShell?
¿Cómo se configura el directorio de trabajo predeterminado de PowerShell?
Respuestas:
Puede especificar el directorio para abrir al iniciar PowerShell:
powershell.exe -NoExit -command "& {Set-Location $env:systemroot}"
Úselo en su atajo.
O use un perfil para establecer un directorio de inicio.
pwsh.exe -WorkingDirectory C:\YourLocation\Goes\Here
Cree un perfil de PowerShell de la siguiente manera.
Ejecute PowerShell como administrador y ejecute el siguiente comando:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Esto permitirá que PowerShell ejecute scripts locales y scripts descargados de Internet que hayan sido firmados. Lea más sobre este comando en la documentación .
En su Documents
carpeta, busque una carpeta con el nombre WindowsPowerShell
de PowerShell clásico o PowerShell
de PowerShell Core más nuevo. Si no existe, está bien; solo créalo.
profile.ps1
en la WindowsPowerShell
carpeta (o PowerShell
para PowerShell Core).Abra profile.ps1
y agregue el siguiente comando para configurar su directorio de trabajo predeterminado:
Set-Location C:\my\default\working\directory
Abra una nueva ventana de PowerShell ... los cambios deberían haber surtido efecto.
powershell -File "myscript.ps1"
powershel -NoProfile -File "myscript.ps1"
Probé las respuestas anteriores en Windows Server 2016 sin éxito.
Pero encontré que este enfoque (debería ser el mismo para Windows 10) funcionó para mí.
¡Hecho!
En el mismo cuadro de diálogo Propiedades , también puede cambiar muchas otras configuraciones como fuentes, colores, tamaños y en la pestaña Acceso directo a través del botón Advanced. Puede seleccionar si esa sesión de PowerShell se ejecutará con privilegios de administrador.
Run as administrator
el .lnk
menú avanzado. La solución parece estar aquí stackoverflow.com/questions/31622469/…
Run as aministrator
casilla de verificación de un lado a otro.
Una forma más sencilla de establecer el directorio predeterminado es la siguiente:
Haga clic con el botón derecho en el icono de Windows PowerShell en Inicio, y nuevamente haga clic con el botón derecho en Windows PowerShell y seleccione Propiedades (no Ejecutar como administrador y no Windows PowerShell ISE )
Poner Set-Location
en su perfil cambiará incondicionalmente el directorio de trabajo actual, lo que podría tener consecuencias no deseadas con respecto al directorio de trabajo para los scripts que ejecuta a través de "ejecutar con PowerShell".
Una solución alternativa es cambiar el directorio de trabajo de los .lnk
archivos a PowerShell que generalmente se encuentra en %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
. Haga clic con el botón derecho en un enlace y cambie el directorio de trabajo %HOMEDRIVE%%HOMEPATH%
del directorio que desee.
Run as administrator
el .lnk
menú avanzado. La solución parece estar aquí stackoverflow.com/questions/31622469/…
-NoProfile
opción como powershell -NoProfile -File "myscript.ps1"
Escriba esto en PowerShell:
New-Item -path $profile -type file –force
Crea un archivo .ps1 en la carpeta PowerShell. Ábrelo y edítalo como:
Set-location C:\files
Hecho
Consulte este enlace. Funciona bien.
En lugar de cambiar incondicionalmente el directorio de trabajo como se menciona en las respuestas anteriores, puede escribir una función simple en el perfil de PowerShell para usarla Set-Location
para cambiar rápidamente el directorio de trabajo cuando sea necesario.
Consulte la respuesta de Jeremy Danyow para crear / modificar un perfil de PowerShell.
Agregue una (s) función (es) a su perfil de PowerShell:
function goto_this {set-location 'your\path\to\some\dir'}
function goto_that {set-location 'your\path to some\dir with space'}
Simplemente cambie el nombre de la función y el directorio al que apunta. El uso de comillas en la ruta es obligatorio si contiene espacios. Intento mantener el prefijo, goto_
ya que ayuda a recordar los nombres de las funciones.
Puede comenzar a escribir y goto_
luego presionar TAB para recorrer todas las funciones agregadas (recuerde iniciar una nueva ventana de PowerShell después de agregar / modificar funciones).
Usando solo la línea de comando, si un archivo ya existe, se agregará a él:
$(if (-Not (Test-Path ~\Documents\WindowsPowerShell\)){ mkdir ~\Documents\WindowsPowerShell\}) ; echo "Set-Location c:\THELOCATIONYOUWANT" >> ~\Documents\WindowsPowerShell\profile.ps1
Con eso, parece haber cierta confusión sobre el "directorio de trabajo" y la "ubicación" de PowerShell. Lo que la mayoría de la gente aquí está haciendo y diciendo es cambiar la "ubicación" de PowerShell. El "directorio de trabajo" es realmente diferente. Aquí hay un artículo que lo explica.
Para aquellos que no quieren leer el artículo: Abra PowerShell y use lo que otros han dicho que haga Set-Location "C:\some\directory"
. Tenga en cuenta que su "directorio de trabajo" todavía está donde se abrió su PowerShell. Ya sea "~"
o "%SYSTEMROOT%\system32"
dependiendo de si se ejecutó como administrador o no. Para verificar el directorio de trabajo, use [Environment]::CurrentDirectory
.
Nota: en el artículo, el autor dice que verifique el "directorio de trabajo" usando este comando:
\[Environment\]::CurrentDirectory
No estoy seguro de si esto funciona con versiones anteriores de PowerShell, pero con PowerShell 5 (y posterior) debe usar [Environment]::CurrentDirectory
.
Esta solución establece la carpeta de trabajo actual en la ubicación donde se encuentra el script. Asegúrese de colocarlo al principio de su secuencia de comandos, o al menos antes de intentar usar el comando basándose en la ruta de ubicación.
Set-Location (Split-Path $MyInvocation.MyCommand.Path)