Set-Location
Establece la ubicación de trabajo actual en una ubicación especificada.
Syntax
Set-Location
[[-Path] <String>]
[-PassThru]
[<CommonParameters>]
Set-Location
-LiteralPath <String>
[-PassThru]
[<CommonParameters>]
Set-Location
[-PassThru]
[-StackName <String>]
[<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.
PowerShell 6.2 agregó compatibilidad con -
y +
como valores para el parámetro Path . PowerShell mantiene un historial de las últimas 20 ubicaciones a las que se puede acceder con -
y +
. Esta lista es independiente de la pila de ubicaciones a la que se accede mediante el parámetro StackName .
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.
Ejemplo 5: Navegar por el historial de ubicaciones mediante '+' o '-'
PS C:\> Set-Location -Path $env:SystemRoot
PS C:\Windows> Set-Location -Path Cert:\
PS Cert:\> Set-Location -Path HKLM:\
PS HKLM:\>
# Navigate back through the history using "-"
PS HKLM:\> Set-Location -Path -
PS Cert:\> Set-Location -Path -
PS C:\Windows>
# Navigate using the Set-Location alias "cd" and the implicit positional Path parameter
PS C:\Windows> cd -
PS C:\> cd +
PS C:\Windows> cd +
PS Cert:\>
El uso del alias cd -
o cd +
es una manera fácil de navegar por el historial de ubicaciones mientras está en el terminal. Para obtener más información sobre cómo navegar con -
/+
, consulte el parámetro Path.
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.
Type: | String |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Devuelve un objeto PathInfo que representa la ubicación. De forma predeterminada, este cmdlet no genera ningún resultado.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
PowerShell mantiene un historial de las últimas 20 ubicaciones que ha establecido. Si el valor del parámetro Path es el -
carácter , la nueva ubicación de trabajo será la ubicación de trabajo anterior en el historial (si existe). Del mismo modo, si el valor es el +
carácter, la nueva ubicación de trabajo será la siguiente ubicación de trabajo del historial (si existe). Esto es similar al uso Pop-Location
y Push-Location
, salvo que el historial es una lista, no una pila, y se realiza un seguimiento implícito, no se controla manualmente. No hay ninguna manera de ver la lista de historial.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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
PowerShell incluye los siguientes alias para Set-Location
:
- Todas las plataformas:
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 (""
).
Vínculos relacionados
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de