¿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 Documentscarpeta, busque una carpeta con el nombre WindowsPowerShellde PowerShell clásico o PowerShellde PowerShell Core más nuevo. Si no existe, está bien; solo créalo.
profile.ps1en la WindowsPowerShellcarpeta (o PowerShellpara PowerShell Core).Abra profile.ps1y agregue el siguiente comando para configurar su directorio de trabajo predeterminado:
Set-Location C:\my\default\working\directoryAbra 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 administratorel .lnkmenú avanzado. La solución parece estar aquí stackoverflow.com/questions/31622469/…
Run as aministratorcasilla 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-Locationen 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 .lnkarchivos 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 administratorel .lnkmenú avanzado. La solución parece estar aquí stackoverflow.com/questions/31622469/…
-NoProfileopció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-Locationpara 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)