Documentos de Académico
Documentos de Profesional
Documentos de Cultura
about_assignment_operators
DESCRIPCIN BREVE
Describe cmo utilizar operadores para asignar valores a las
variables.
DESCRIPCIN DETALLADA
Los operadores de asignacin asignan uno o ms valores a una variable.
Pueden realizar operaciones numricas con los valores antes de la
asignacin.
Windows PowerShell admite los siguientes operadores de asignacin.
Operador Descripcin
------- ----------=
Establece el valor de una variable en el valor especificado.
+=
-=
*=
/=
%=
++
--
SINTAXIS
Esta es la sintaxis de los operadores de asignacin:
<expresin-asignable> <operador-de-asignacin> <valor>
Las expresiones asignables incluyen variables y propiedades. El
valor puede ser un valor nico, una matriz de valores, un comando, una
expresin o una instruccin.
Los operadores de decremento e incremento son operadores unarios.
Cada uno de ellos presenta versiones de prefijo y postfijo.
<expresin-asignable><operador>
<operador><expresin-asignable>
La expresin asignable debe un nmero o debe ser convertible a un
nmero.
ASIGNAR VALORES
Las variables son espacios de memoria con nombre que almacenan
valores. Los valores se almacenan en variables mediante el operador de
asignacin (=). Se puede hacer que el nuevo valor sustituya al valor
existente de la variable o bien anexar un valor nuevo al existente.
El operador de asignacin bsico es el signo igual (=) (ASCII 61). Por
ejemplo, la instruccin siguiente asigna el valor Windows PowerShell a la
variable $MyShell:
$MyShell = "Windows PowerShell"
Al asignar un valor a una variable en Windows PowerShell, se crea la
variable si todava no existe. Por ejemplo, la primera de las dos
instrucciones de asignacin siguientes crea la variable $a y le
asigna el valor 6. La segunda instruccin de asignacin asigna el
valor 12 a $a. La primera instruccin crea una nueva variable.
La segunda instruccin solamente cambia su valor:
$a = 6
$a = 12
En Windows PowerShell, las variables no tienen un tipo de datos
especfico a no ser que se conviertan. Cuando una variable
contiene un solo objeto, toma el tipo de datos de ese objeto. Cuando
contiene una coleccin de objetos, la variable tiene el tipo de datos
System.Object. Por consiguiente, se puede asignar cualquier tipo de
objeto a la coleccin. En el ejemplo siguiente se muestra que es
posible agregar objetos de proceso, objetos de servicio, cadenas y
enteros a una variable sin generar un error:
$a
$a
$a
$a
= get-process
+= get-service
+= "cadena"
+= 12
$a = 0x10
Para asignar un valor exponencial a una variable, se escribe el
$a = 1,2,3
$a += 2
$a
$a += "Cadena"
$a
C:\PS> $a = @{a = 1; b = 2; c = 3}
C:\PS> $a += @{mode = "write"}
C:\PS> $a
Nombre
Valor
-------a
1
b
2
mode
write
c
3
El comando siguiente intenta anexar un entero (1) a la tabla hash
en la variable $a. Se produce un error en este comando:
C:\PS> $a = @{a = 1; b = 2; c = 3}
C:\PS> $a += 1
Solo se puede agregar una tabla de hash a otra tabla de hash.
En lnea:1 carcter:6
+ $a += <<<< 1
ASIGNACIN MEDIANTE EL OPERADOR DE SUSTRACCIN (-=)
El operador de asignacin por sustraccin (-=) disminuye el valor
de una variable en el valor especificado en el lado derecho del
operador.
C:\PS> $a = 1,2,3
C:\PS> $a
1
2
3
C:\PS> $a
3
OPERADORES DE DECREMENTO E INCREMENTO
El operador de incremento (++) aumenta el valor de una variable
en 1. Cuando se utiliza al operador de incremento en una
instruccin simple, no se devuelve ningn valor.
Para ver el resultado, debe mostrarse el valor de la variable,
como sigue:
C:\PS> $a = 7
C:\PS> ++$a
C:\PS> $a
8
Para forzar la devolucin de un valor, debe incluirse la variable y el
operador entre parntesis, como sigue:
C:\PS> $a = 7
C:\PS> (++$a)
8
El operador de incremento se puede colocar antes (prefijo) o despus
(postfijo) de una variable. La versin de prefijo del operador
incrementa la variable antes de que su valor se utilice en la
instruccin, como sigue:
C:\PS>
C:\PS>
C:\PS>
8
C:\PS>
8
$a = 7
$c = ++$a
$a
$c
$a = 7
$c = $a++
$a
$c
C:\PS>
C:\PS>
C:\PS>
6
C:\PS>
5
$a = 7
--$a
$a
(--$a)
$a = 7
$c = --$a
$a
$c
$a = 7
$d = $a-$a
$d
C:\PS> $a = "6"
C:\PS> $a.gettype().fullname
System.String
Si el primer valor asignado a la variable es una cadena, Windows
PowerShell tratar todas las operaciones como operaciones de cadena y
convertir los nuevos valores en cadenas. Esto sucede en el ejemplo
siguiente:
C:\PS> $a = "archivo"
C:\PS> $a += 3
C:\PS> $a
archivo3
Si el primer valor asignado es un entero, Windows PowerShell
tratar todas las operaciones como operaciones de enteros y
convertir los nuevos valores en enteros. Esto sucede en el ejemplo
siguiente:
C:\PS> $a = 6
C:\PS> $a += "3"
C:\PS> $a
9
El tipo de una variable escalar nueva se puede convertir en
cualquier tipo de datos de .NET Framework. Para ello, debe
escribirse el nombre del tipo de datos entre corchetes como
prefijo del nombre de la variable o del primer valor de asignacin.
Al convertir una variable, es posible determinar los tipos de datos que
se pueden almacenar en ella. Adems, se puede determinar cmo se
comportar la variable al manipularla.
Por ejemplo, el comando siguiente convierte la variable a un tipo
string:
C:\PS> [string]$a = 27
C:\PS> $a += 3
C:\PS> $a
273
En el ejemplo siguiente se convierte el primer valor, en lugar de la
variable:
$a = [string]27
Al convertir una variable a un tipo especfico, la convencin comn es
convertir la variable propiamente dicha, y no su valor. Sin embargo,
no puede se puede volver a convertir el tipo de datos de una variable
[system.datetime]$a = "31/5/2005"
Se asignar a la variable un valor que se ajuste al tipo
System.DateTime. El valor de la variable $a sera el siguiente:
Martes, 31 de marzo de 2005 12:00:00 a.m.
ASIGNAR MLTIPLES VARIABLES
En Windows PowerShell se pueden asignar valores a mltiples
variables con un solo comando. El primer elemento del valor de
asignacin se asigna a la primera variable, el segundo elemento
se asigna a la segunda variable, el tercer elemento a la tercera
variable, etc. Por ejemplo, el comando siguiente asigna el valor
1 a la variable $a, el segundo, el valor 2 a la variable $b y, el
tercero, el valor 3 a la variable $c:
C:\PS> $a, $b, $c = 1, 2, 3
Si el valor de asignacin contiene ms elementos que variables,
todos los valores que sobren se asignarn a la ltima variable.
Por ejemplo, el siguiente comando contiene tres variables y cinco
valores:
$a, $b, $c = 1, 2, 3, 4, 5
Por consiguiente, Windows PowerShell asignar el valor 1 a la
variable $a y el valor 2 a la variable $b. Adems, asignar los
valores 3, 4 y 5 a la variable $c. Para asignar los valores de la
variable $c a otras tres variables, se utiliza el formato siguiente:
$d, $e, $f = $c
Este comando asigna el valor 3 a la variable $d, el valor 4, a la
variable $e y el valor 5, a la variable $f.
Tambin puede asignar un valor individual a mltiples variables
encadenndolas. Por ejemplo, el siguiente comando asigna el valor "tres" a
cuatro variables:
$a = $b = $c = $d = "tres"
CMDLETS RELACIONADOS CON VARIABLES
Adems de usar una operacin de asignacin para establecer el
valor de una variable, tambin se puede usar el cmdlet Set-Variable.
Por ejemplo, el comando siguiente usa Set-Variable para
asignar la matriz 1, 2, 3 a la variable $a.