Windows PowerShell trabaja con objetos. Permite crear variables, que son básicamente objetos con nombre, para almacenar los resultados y poder utilizarlos más adelante. Si está acostumbrado a trabajar con variables en otros shells, recuerde que las variables de Windows PowerShell son objetos, no texto.

Las variables se especifican siempre con el carácter inicial $ y pueden contener cualquier carácter alfanumérico o el carácter de subrayado en sus nombres.

Crear una variable

Para crear una variable debe escribir un nombre de variable válido:

PS> $loc
PS>

No se devuelven resultados porque $loc no tiene un valor. Puede crear una variable y asignarle un valor en el mismo paso. Windows PowerShell crea sólo la variable si no existe; de lo contrario, asigna el valor especificado a la variable existente. Para almacenar la ubicación actual en la variable $loc, escriba:

$loc = Get-Location

Cuando se escribe este comando, no se muestran resultados porque se envían a $loc. En Windows PowerShell, los resultados mostrados son un efecto secundario: los datos que no se redirigen a alguna ubicación siempre terminan enviándose a la pantalla. Si escribe $loc, se mostrará la ubicación actual:

PS> $loc

Path
----
C:\temp

Puede utilizar Get-Member para mostrar información acerca del contenido de variables. La canalización de $loc a Get-Member mostrará que se trata de un objeto PathInfo, el mismo resultado que se obtiene con Get-Location:

PS> $loc | Get-Member -MemberType Property


   TypeName: System.Management.Automation.PathInfo

Name         MemberType Definition
----         ---------- ----------
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   System.String Path {get;}
Provider     Property   System.Management.Automation.ProviderInfo Provider {...
ProviderPath Property   System.String ProviderPath {get;}

Manipular variables

Windows PowerShell incluye varios comandos que permiten manipular variables. Para ver una lista completa en un formato legible, escriba:

Get-Command -Noun Variable | Format-Table -Property Name,Definition -AutoSize -Wrap

Además de las variables que cree en la sesión actual de Windows PowerShell, hay varias variables definidas por el sistema. Puede utilizar el cmdlet Remove-Variable para borrar todas las variables no controladas por Windows PowerShell. Para borrar todas las variables, escriba el siguiente comando:

Remove-Variable -Name * -Force -ErrorAction SilentlyContinue

Se generará la siguiente solicitud de confirmación:

Confirm
Are you sure you want to perform this action?
Performing operation "Remove Variable" on Target "Name: Error".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):A

Si después ejecuta el cmdlet Get-Variable, podrá ver las demás variables de Windows PowerShell. Como hay una unidad de Windows PowerShell para las variables, también puede mostrar todas las variables de Windows PowerShell mediante el siguiente comando:

Get-ChildItem variable:

Usar variables de Cmd.exe

Aunque Windows PowerShell no es Cmd.exe, se ejecuta en un entorno de shell de comandos y puede usar las mismas variables disponibles en cualquier entorno de Windows. Estas variables se exponen a través de la unidad env:. Para ver estas variables, escriba:

Get-ChildItem env:

Aunque los cmdlets de variables estándar no están diseñados para trabajar con variables env:, puede utilizarlos si especifica el prefijo env:. Por ejemplo, para ver el directorio raíz del sistema operativo, puede usar la variable %SystemRoot% del shell de comandos desde Windows PowerShell; para ello, escriba:

PS> $env:SystemRoot
C:\WINDOWS

También puede crear y modificar variables de entorno en Windows PowerShell. Las variables de entorno a las que se tiene acceso desde Windows PowerShell cumplen las normas habituales para las variables de entorno de cualquier otra ubicación de Windows.




Tabla de contenido