Al desplazarse por sistemas de carpetas en el Explorador de Windows, se suele tener una ubicación de trabajo concreta, es decir, la carpeta abierta actualmente. Los elementos de la carpeta actual se pueden manipular fácilmente con sólo hacer clic en ellos. En interfaces de línea de comandos como Cmd.exe, si se encuentra en la misma carpeta que un archivo específico, puede tener acceso al archivo mediante la especificación de un nombre relativamente corto, en lugar de tener que especificar la ruta de acceso al archivo completa. El directorio actual se denomina directorio de trabajo.
Windows PowerShell utiliza el sustantivo Location para hacer referencia al directorio de trabajo e implementa un conjunto de cmdlets para examinar y manipular la ubicación.
Obtener la ubicación actual (Get-Location)
Para determinar la ruta de acceso a la ubicación de directorio actual, escriba el comando Get-Location:
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser
Nota: | |
El cmdlet Get-Location es similar al comando pwd del shell BASH. El cmdlet Set-Location es similar al comando cd de Cmd.exe. |
Establecer la ubicación actual (Set-Location)
El comando Get-Location se utiliza con el comando Set-Location. El comando Set-Location permite especificar la ubicación de directorio actual.
PS> Set-Location -Path C:\Windows
Después de escribir el comando, observará que no recibe ninguna información directa sobre el efecto del comando. La mayoría de los comandos de Windows PowerShell que realizan una acción generan pocos resultados o ninguno, ya que éstos no siempre son útiles. Para comprobar que se ha producido el cambio correcto de directorio al escribir el comando Set-Location, incluya el parámetro -PassThru al escribir el citado comando:
PS> Set-Location -Path C:\Windows -PassThru Path ---- C:\WINDOWS
El parámetro -PassThru se puede utilizar con muchos comandos Set de Windows PowerShell para obtener información sobre el resultado en los casos en que no se muestran resultados de forma predeterminada.
Puede especificar rutas de acceso relativas a la ubicación actual de la misma manera que lo haría en la mayoría de los shells de comandos de UNIX y Windows. En la notación estándar para rutas de acceso relativas, la carpeta actual se representa mediante un punto (.) y el directorio principal de la ubicación actual se representa mediante dos puntos (..).
Por ejemplo, si se encuentra en la carpeta C:\Windows, un punto (.) representa C:\Windows y dos puntos (..) representan C:. Para cambiar de la ubicación actual a la raíz de la unidad C:, escriba:
PS> Set-Location -Path .. -PassThru
Path
----
C:\
La misma técnica se puede aplicar a unidades de Windows PowerShell que no son unidades del sistema de archivos, como HKLM:. Para establecer la ubicación en la clave HKLM\Software del Registro, escriba:
PS> Set-Location -Path HKLM:\SOFTWARE -PassThru Path ---- HKLM:\SOFTWARE
Posteriormente, puede cambiar la ubicación al directorio principal, que es la raíz de la unidad HKLM: de Windows PowerShell, utilizando una ruta de acceso relativa:
PS> Set-Location -Path .. -PassThru Path ---- HKLM:\
Puede escribir Set-Location o usar cualquiera de los alias integrados de Windows PowerShell para Set-Location (cd, chdir, sl). Por ejemplo:
cd -Path C:\Windows
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru
Almacenar y recuperar ubicaciones recientes (Push-Location y Pop-Location)
Al cambiar de ubicación, resulta útil registrar la ubicación anterior y poder volver a ella. El cmdlet Push-Location de Windows PowerShell crea un historial ordenado (una "pila") de rutas de acceso a directorios en las que ha estado y el cmdlet Pop-Location complementario permite retroceder por este historial.
Por ejemplo, Windows PowerShell se inicia normalmente en el directorio principal del usuario.
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser
Nota: | |
La pila de palabras tiene un significado especial en muchos entornos de programación, incluido .NET Framework. Al igual que en una pila física de elementos, el último que se coloca en la pila es el primero que se puede extraer. El proceso de agregar un elemento a una pila también se denomina "insertar" el elemento en la pila. El proceso de sacar un elemento de una pila también se denomina "extraer" el elemento de la pila. |
Para insertar la ubicación actual en la pila y, a continuación, desplazarse a la carpeta Configuración local, escriba:
PS> Push-Location -Path "Local Settings"
Después puede insertar la ubicación Configuración local en la pila y desplazarse a la carpeta Temp. Para ello, escriba:
PS> Push-Location -Path Temp
Para comprobar que ha cambiado de directorio, escriba el comando Get-Location:
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser\Local Settings\Temp
A continuación, puede retroceder al último directorio visitado escribiendo el comando Pop-Location, así como comprobar el cambio escribiendo el comando Get-Location:
PS> Pop-Location PS> Get-Location Path ---- C:\Documents and Settings\me\Local Settings
Al igual que sucede con el cmdlet Set-Location, puede incluir el parámetro -PassThru cuando escriba el cmdlet Pop-Location para que se muestre el directorio que especificó:
PS> Pop-Location -PassThru Path ---- C:\Documents and Settings\PowerUser
También puede utilizar los cmdlets Location con rutas de red. Si tiene un servidor llamado FS01 con el recurso compartido Public, puede cambiar la ubicación con el siguiente comando:
Set-Location \\FS01\Public
O bien
Push-Location \\FS01\Public
Puede usar los comandos Push-Location y Set-Location para cambiar la ubicación a cualquier unidad disponible. Por ejemplo, si tiene una unidad local de CD-ROM con la letra de unidad D que contiene un CD de datos, puede cambiar la ubicación a la unidad de CD escribiendo el comando Set-Location D:.
Si la unidad está vacía, aparecerá el siguiente mensaje de error:
PS> Set-Location D: Set-Location : Cannot find path 'D:\' because it does not exist.
Si utiliza una interfaz de línea de comandos, no es conveniente examinar las unidades físicas disponibles con el Explorador de Windows. Además, el Explorador de Windows no mostrará todas las unidades de Windows PowerShell. Windows PowerShell proporciona un conjunto de comandos para manipular las unidades de Windows PowerShell, que es de lo que nos ocuparemos a continuación.