Set-Location
Establece la ubicación de trabajo actual en una ubicación especificada.
Sintaxis
Set-Location
[[-Path] <String>]
[-PassThru]
[-UseTransaction]
[<CommonParameters>]
Set-Location
-LiteralPath <String>
[-PassThru]
[-UseTransaction]
[<CommonParameters>]
Set-Location
[-PassThru]
[-StackName <String>]
[-UseTransaction]
[<CommonParameters>]
Description
El Set-Location
cmdlet establece la ubicación de trabajo en una ubicación especificada. Esa ubicación podría ser un directorio, un subdirectorio, una ubicación del Registro o cualquier ruta de acceso del proveedor.
También puede usar el parámetro StackName para convertir una pila de ubicación con nombre en la pila de ubicación actual. Para obtener más información sobre las pilas de ubicaciones, vea la sección de notas.
Ejemplos
Ejemplo 1: Establecer la ubicación actual
PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>
Este comando establece la ubicación actual en la raíz de la HKLM:
unidad.
Ejemplo 2: Establecer la ubicación actual y mostrar esa ubicación
PS C:\> Set-Location -Path "Env:\" -PassThru
Path
----
Env:\
PS Env:\>
Este comando establece la ubicación actual en la raíz de la Env:
unidad. Usa el parámetro PassThru para dirigir PowerShell para devolver un objeto PathInfo que representa la Env:\
ubicación.
Ejemplo 3: Establecer la ubicación en la ubicación actual en la unidad C:
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>
El primer comando establece la ubicación en la raíz de la HKLM:
unidad en el proveedor del Registro.
El segundo comando establece la ubicación en la ubicación actual de la C:
unidad en el proveedor FileSystem.
Cuando se especifica el nombre de la unidad en el formulario <DriveName>:
(sin barra diagonal inversa), el cmdlet establece la ubicación en la ubicación actual de PSDrive.
Para obtener la ubicación actual en el comando PSDrive use Get-Location -PSDrive <DriveName>
.
Ejemplo 4: Establecer la ubicación actual en una pila con nombre
PS C:\> Push-Location -Path 'C:\Program Files\PowerShell\' -StackName "Paths"
PS C:\Program Files\PowerShell\> Set-Location -StackName "Paths"
PS C:\Program Files\PowerShell\> Get-Location -Stack
Path
----
C:\
El primer comando agrega la ubicación actual a la pila Rutas de acceso. El segundo comando hace que la pila de ubicaciones rutas de acceso sea la pila de ubicación actual. El tercer comando muestra las ubicaciones de la pila de ubicaciones actual.
Los *-Location
cmdlets usan la pila de ubicación actual a menos que se especifique una pila de ubicación diferente en el comando . Para obtener información sobre las pilas de ubicación, vea las notas.
Parámetros
-LiteralPath
Especifica una ruta de acceso de la ubicación. El valor del parámetro LiteralPath se usa exactamente como se escribe. Ningún carácter se interpreta como carácter comodín. Si la ruta de acceso contiene caracteres de escape, escríbalos entre comillas simples. Las comillas simples indican a PowerShell que no interprete ningún carácter como secuencias de escape.
Tipo: | String |
Alias: | PSPath |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-PassThru
Devuelve un objeto PathInfo que representa la ubicación. De forma predeterminada, este cmdlet no genera ningún resultado.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Path
Especifique la ruta de acceso de una nueva ubicación de trabajo. Si no se proporciona ninguna ruta de acceso, Set-Location
el valor predeterminado es el directorio principal del usuario actual. Cuando se usan caracteres comodín, el cmdlet elige el contenedor (directorio, clave del Registro, almacén de certificados) que coincide con el patrón de caracteres comodín. Si el patrón de caracteres comodín coincide con más de un contenedor, el cmdlet devuelve un error.
Tipo: | String |
Posición: | 0 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | True |
-StackName
Especifica un nombre de pila de ubicación existente que este cmdlet convierte la pila de ubicación actual. Escriba un nombre de pila de ubicaciones. Para indicar la pila de ubicación predeterminada sin nombre, escriba $null
o una cadena vacía (""
).
El uso de este parámetro no cambia la ubicación actual. Solo cambia la pila usada por los *-Location
cmdlets. Los *-Location
cmdlets actúan en la pila actual a menos que use el parámetro StackName para especificar una pila diferente. Para obtener más información sobre las pilas de ubicación, vea notas.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-UseTransaction
Incluye el comando en la transacción activa. Este parámetro solo es válido cuando hay una transacción en curso. Para obtener más información, consulte about_Transactions.
Tipo: | SwitchParameter |
Alias: | usetx |
Posición: | Named |
Valor predeterminado: | False |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Puede canalizar una cadena que contenga una ruta de acceso, pero no una ruta de acceso literal, a este cmdlet.
Salidas
None
De forma predeterminada, este cmdlet no devuelve ninguna salida.
Cuando se usa el parámetro PassThru con Path o LiteralPath, este cmdlet devuelve un objeto PathInfo que representa la nueva ubicación.
Cuando se usa el parámetro PassThru con StackName, este cmdlet devuelve un objeto PathInfoStack que representa el nuevo contexto de pila.
Notas
Windows PowerShell incluye los siguientes alias para Set-Location
:
cd
chdir
sl
PowerShell admite varios espacios de ejecución por proceso. Cada espacio de ejecución tiene su propio directorio actual.
Esto no es lo mismo que [System.Environment]::CurrentDirectory
. Este comportamiento puede ser un problema al llamar a las API de .NET o ejecutar aplicaciones nativas sin proporcionar rutas de acceso de directorio explícitas.
Incluso si los cmdlets de ubicación establecieron el directorio actual de todo el proceso, no puede depender de él porque otro espacio de ejecución podría cambiarlo en cualquier momento. Debe usar los cmdlets de ubicación para realizar operaciones basadas en rutas de acceso mediante el directorio de trabajo actual específico del espacio de ejecución actual.
El Set-Location
cmdlet está diseñado para trabajar con los datos expuestos por cualquier proveedor. Para enumerar los proveedores disponibles en la sesión, escriba Get-PSProvider
. Para obtener más información, consulte about_Providers.
Una pila es una lista en la que solo se puede acceder al elemento agregado más recientemente. Los elementos se agregan en el orden en que se utilizan y luego se recuperan para su uso en el orden inverso. PowerShell le permite almacenar ubicaciones de proveedor en pilas de ubicaciones. PowerShell crea una pila de ubicación predeterminada sin nombre. Puede crear varias pilas de ubicación con nombre. Si no especifica un nombre de pila, PowerShell usa la pila de ubicación actual. De forma predeterminada, la ubicación predeterminada sin nombre es la pila de ubicaciones actual, pero puede usar el Set-Location
cmdlet para cambiar la pila de ubicación actual.
Para administrar las pilas de ubicación, use los *-Location
cmdlets, como se indica a continuación:
Para agregar una ubicación a una pila de ubicaciones, use el
Push-Location
cmdlet .Para obtener una ubicación desde una pila de ubicaciones, use el
Pop-Location
cmdlet .Para mostrar las ubicaciones en la pila de ubicaciones actual, use el parámetro Stack del
Get-Location
cmdlet . Para mostrar las ubicaciones en una pila de ubicaciones con nombre, use el parámetro StackName deGet-Location
.Para crear una nueva pila de ubicación, use el parámetro StackName de
Push-Location
. Si especifica una pila que no existe,Push-Location
crea la pila.Para que una pila de ubicación sea la pila de ubicación actual, use el parámetro StackName de
Set-Location
.
La pila de ubicaciones predeterminada sin nombre sólo es accesible en su totalidad cuando es la pila de ubicaciones actual.
Si crea una pila de ubicación con nombre en la pila de ubicaciones actual, ya no puede usar los Push-Location
cmdlets o Pop-Location
para agregar o obtener elementos de la pila predeterminada o usar el Get-Location
cmdlet para mostrar las ubicaciones en la pila sin nombre. Para que la pila sin nombre sea la pila actual, use el parámetro StackName del Set-Location
cmdlet con un valor de $null
o una cadena vacía (""
).