HOWTO · PowerShell
Cambiar el directorio de trabajo en PowerShell
Este artículo le mostrará cómo cambiar correctamente su directorio de trabajo en Windows PowerShell y cómo se diferencia de su sintaxis de símbolo del sistema heredada.
En esta página
Use el cmdlet Set-Location de PowerShell para cambiar la ubicación actual. Sus alias cd y chdir también funcionan, aunque el nombre completo del cmdlet resulta más claro en scripts y ejemplos. Una ubicación puede ser un directorio de la unidad actual o una ruta de otra unidad. Los ejemplos siguientes usan $HOME, que PowerShell define como el directorio personal del usuario actual.
Cambiar el directorio de trabajo con Set-Location
Ejecute este ejemplo para establecer el directorio personal como ubicación actual:
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
Set-Location -Path $HOME
Set-Location cambia la ubicación actual de la sesión de PowerShell. -Path indica el destino; puede omitirse si la ruta es sencilla, pero escribirlo explícitamente deja más claro el propósito del comando. El comando no inicia un nuevo shell ni cambia la ubicación de otros programas en ejecución. La ejecución de PowerShell suministrada terminó correctamente y no produjo salida estándar para este ejemplo.
Cambiar de unidad y de directorio
PowerShell puede cambiar a un directorio de otra unidad con un solo comando Set-Location. Por ejemplo, Set-Location -Path 'D:\Work' selecciona esa ruta si la unidad D: y el directorio están disponibles en el entorno actual de PowerShell. Una unidad puede ser del sistema de archivos, como C:, o estar expuesta por otro proveedor de PowerShell; el destino debe existir y ser accesible.
El símbolo del sistema gestiona de otra manera el cambio de unidad. Si ejecuta cd D:\Work mientras C: es la unidad activa, cambia el directorio recordado para D:, pero no activa esa unidad. En el símbolo del sistema, cambie primero de unidad con D: y después cambie el directorio con cd \Work. Esta diferencia corresponde al símbolo del sistema; en PowerShell, use Set-Location con la ruta de destino para cambiar de unidad y de directorio a la vez. Estas formas del símbolo del sistema se describen en el texto porque los ejemplos ejecutables de este artículo son para PowerShell.
Usar rutas con espacios
Si algún nombre de directorio contiene espacios, ponga la ruta entre comillas para que PowerShell la trate como un único argumento. Se pueden usar comillas simples o dobles para una ruta literal. Por ejemplo, use Set-Location -Path 'C:\Program Files' o Set-Location -Path "C:\Program Files". Las comillas simples son prácticas cuando se quiere tratar la ruta literalmente; las dobles también permiten expandir variables de PowerShell dentro de la cadena. La guía sobre rutas con espacios no está disponible en español. Sustituya la ruta de ejemplo por un directorio que exista en su sistema.
Capturar la nueva ubicación con -PassThru
Normalmente, Set-Location cambia la ubicación de la sesión sin devolver un objeto de ubicación. Añada -PassThru cuando el siguiente comando necesite ese objeto, por ejemplo, para leer su propiedad Path o guardarlo en una variable. Así puede evitar llamar por separado a Get-Location cuando el objeto resulta útil de inmediato.
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
$newLocation = Set-Location -Path $HOME -PassThru
$newLocation.Path
/root
La segunda línea lee la ruta del objeto de ubicación devuelto. En la ejecución de PowerShell suministrada, este ejemplo imprimió la ruta que aparece a continuación. Como $HOME depende del usuario y del sistema actuales, su ruta puede ser distinta. -PassThru es opcional: use Get-Location cuando quiera consultar la ubicación actual por separado y no añada -PassThru salvo que el objeto devuelto vaya a ser útil en comandos posteriores.
Usar alias de Set-Location
PowerShell define cd y chdir como alias de Set-Location; sl es otro alias. En el trabajo interactivo, las formas abreviadas pueden resultar prácticas. El nombre completo del cmdlet suele ser más fácil de reconocer para quien lea un script, así que considere sl una abreviatura opcional, no un comando distinto con otro comportamiento. Todas estas formas cambian la ubicación actual de PowerShell y aceptan las mismas rutas de destino, incluidas las rutas con espacios entre comillas.