Acerca de los operadores de asignaciónAbout Assignment Operators

Descripción breveShort description

Describe cómo usar operadores para asignar valores a variables.Describes how to use operators to assign values to variables.

Descripción largaLong description

Los operadores de asignación asignan uno o varios valores a una variable.Assignment operators assign one or more values to a variable. Pueden realizar operaciones numéricas en los valores anteriores a la asignación.They can perform numeric operations on the values before the assignment.

PowerShell admite los siguientes operadores de asignación.PowerShell supports the following assignment operators.

OperadorOperator DescripciónDescription
= Establece el valor de una variable en el valor especificado.Sets the value of a variable to the specified value.
+= Aumenta el valor de una variable por el valor especificado, o bienIncreases the value of a variable by the specified value, or
anexa el valor especificado al valor existente.appends the specified value to the existing value.
-= Disminuye el valor de una variable por el valor especificado.Decreases the value of a variable by the specified value.
*= Multiplica el valor de una variable por el valor especificado, o bienMultiplies the value of a variable by the specified value, or
anexa el valor especificado al valor existente.appends the specified value to the existing value.
/= Divide el valor de una variable por el valor especificado.Divides the value of a variable by the specified value.
%= Divide el valor de una variable por el valor especificado yDivides the value of a variable by the specified value and
a continuación, asigna el resto (módulo) a la variable.then assigns the remainder (modulus) to the variable.
++ Aumenta el valor de una variable, una propiedad asignable oIncreases the value of a variable, assignable property, or
elemento de matriz en 1.array element by 1.
-- Disminuye el valor de una variable, una propiedad asignable oDecreases the value of a variable, assignable property, or
elemento de matriz en 1.array element by 1.

SintaxisSyntax

La sintaxis de los operadores de asignación es la siguiente:The syntax of the assignment operators is as follows:

<assignable-expression> <assignment-operator> <value><assignable-expression> <assignment-operator> <value>

Las expresiones asignables incluyen variables y propiedades.Assignable expressions include variables and properties. El valor puede ser un valor único, una matriz de valores, o un comando, una expresión o una instrucción.The value can be a single value, an array of values, or a command, expression, or statement.

Los operadores de incremento y decremento son operadores unarios.The increment and decrement operators are unary operators. Cada una tiene versiones de prefijo y postfijo.Each has prefix and postfix versions.

<assignable-expression><operator> <operator><assignable-expression>

La expresión asignable debe ser un número o debe poder convertirse en un número.The assignable expression must be a number or it must be convertible to a number.

Asignar valoresAssigning values

Las variables se denominan espacios de memoria que almacenan valores.Variables are named memory spaces that store values. Los valores se almacenan en variables mediante el operador de asignación = .You store the values in variables by using the assignment operator =. El nuevo valor puede reemplazar el valor existente de la variable o puede anexar un nuevo valor al valor existente.The new value can replace the existing value of the variable, or you can append a new value to the existing value.

El operador de asignación básico es el signo igual = (ASCII 61) .The basic assignment operator is the equal sign = (ASCII 61). Por ejemplo, la siguiente instrucción asigna el valor PowerShell a la $MyShell variable:For example, the following statement assigns the value PowerShell to the $MyShell variable:

$MyShell = "PowerShell"

Cuando se asigna un valor a una variable en PowerShell, se crea la variable si aún no existe.When you assign a value to a variable in PowerShell, the variable is created if it did not already exist. Por ejemplo, la primera de las dos instrucciones de asignación siguientes crea la $a variable y asigna un valor de 6 a $a .For example, the first of the following two assignment statements creates the $a variable and assigns a value of 6 to $a. La segunda instrucción de asignación asigna un valor de 12 a $a .The second assignment statement assigns a value of 12 to $a. La primera instrucción crea una nueva variable.The first statement creates a new variable. La segunda instrucción solo cambia su valor:The second statement changes only its value:

$a = 6
$a = 12

Las variables de PowerShell no tienen un tipo de datos específico a menos que las convierta.Variables in PowerShell do not have a specific data type unless you cast them. Cuando una variable contiene un solo objeto, la variable toma el tipo de datos de ese objeto.When a variable contains only one object, the variable takes the data type of that object. Cuando una variable contiene una colección de objetos, la variable tiene el tipo de datos System. Object.When a variable contains a collection of objects, the variable has the System.Object data type. Por lo tanto, puede asignar cualquier tipo de objeto a la colección.Therefore, you can assign any type of object to the collection. En el ejemplo siguiente se muestra que puede agregar objetos de proceso, objetos de servicio, cadenas y enteros a una variable sin generar un error:The following example shows that you can add process objects, service objects, strings, and integers to a variable without generating an error:

$a = Get-Process
$a += Get-Service
$a += "string"
$a += 12

Dado que el operador de asignación = tiene una precedencia menor que el operador de canalización | , no se requieren paréntesis para asignar el resultado de una canalización de comandos a una variable.Because the assignment operator = has a lower precedence than the pipeline operator |, parentheses are not required to assign the result of a command pipeline to a variable. Por ejemplo, el siguiente comando ordena los servicios del equipo y, a continuación, asigna los servicios ordenados a la $a variable:For example, the following command sorts the services on the computer and then assigns the sorted services to the $a variable:

$a = Get-Service | Sort-Object -Property name

También puede asignar el valor creado por una instrucción a una variable, como en el ejemplo siguiente:You can also assign the value created by a statement to a variable, as in the following example:

$a = if ($b -lt 0) { 0 } else { $b }

Este ejemplo asigna cero a la $a variable si el valor de $b es menor que cero.This example assigns zero to the $a variable if the value of $b is less than zero. Asigna el valor de $b a $a si el valor de $b no es menor que cero.It assigns the value of $b to $a if the value of $b is not less than zero.

El operador de asignaciónThe assignment operator

El operador de asignación = asigna valores a las variables.The assignment operator = assigns values to variables. Si la variable ya tiene un valor, el operador de asignación = reemplaza el valor sin previo aviso.If the variable already has a value, the assignment operator = replaces the value without warning.

La siguiente instrucción asigna el valor entero 6 a la $a variable:The following statement assigns the integer value 6 to the $a variable:

$a = 6

Para asignar un valor de cadena a una variable, incluya el valor de cadena entre comillas, como se indica a continuación:To assign a string value to a variable, enclose the string value in quotation marks, as follows:

$a = "baseball"

Para asignar una matriz (varios valores) a una variable, separe los valores con comas, como se indica a continuación:To assign an array (multiple values) to a variable, separate the values with commas, as follows:

$a = "apple", "orange", "lemon", "grape"

Para asignar una tabla hash a una variable, use la notación de tabla hash estándar en PowerShell.To assign a hash table to a variable, use the standard hash table notation in PowerShell. Escriba un signo de arroba @ seguido de pares de clave y valor separados por signos de punto ; y coma y encerrados entre llaves { } .Type an at sign @ followed by key/value pairs that are separated by semicolons ; and enclosed in braces { }. Por ejemplo, para asignar una tabla hash a la $a variable, escriba:For example, to assign a hash table to the $a variable, type:

$a = @{one=1; two=2; three=3}

Para asignar valores hexadecimales a una variable, preceda al valor con 0x .To assign hexadecimal values to a variable, precede the value with 0x. PowerShell convierte el valor hexadecimal (0x10) en un valor decimal (en este caso, 16) y asigna ese valor a la $a variable.PowerShell converts the hexadecimal value (0x10) to a decimal value (in this case, 16) and assigns that value to the $a variable. Por ejemplo, para asignar un valor de 0x10 a la $a variable, escriba:For example, to assign a value of 0x10 to the $a variable, type:

$a = 0x10

Para asignar un valor exponencial a una variable, escriba el número raíz, la letra e y un número que represente un múltiplo de 10.To assign an exponential value to a variable, type the root number, the letter e, and a number that represents a multiple of 10. Por ejemplo, para asignar un valor de 3,1415 a la potencia de 1.000 a la $a variable, escriba:For example, to assign a value of 3.1415 to the power of 1,000 to the $a variable, type:

$a = 3.1415e3

PowerShell también puede convertir kilobytes KB , megabytes MB y gigabytes GB en bytes.PowerShell can also convert kilobytes KB, megabytes MB, and gigabytes GB into bytes. Por ejemplo, para asignar un valor de 10 kilobytes a la $a variable, escriba:For example, to assign a value of 10 kilobytes to the $a variable, type:

$a = 10kb

El operador de asignación por adiciónThe assignment by addition operator

El operador de asignación por adición += incrementa el valor de una variable o anexa el valor especificado al valor existente.The assignment by addition operator += either increments the value of a variable or appends the specified value to the existing value. La acción depende de si la variable tiene un tipo numérico o de cadena y de si la variable contiene un valor único (un escalar) o varios valores (una colección).The action depends on whether the variable has a numeric or string type and whether the variable contains a single value (a scalar) or multiple values (a collection).

El += operador combina dos operaciones.The += operator combines two operations. En primer lugar, agrega y, a continuación, se asigna.First, it adds, and then it assigns. Por lo tanto, las siguientes instrucciones son equivalentes:Therefore, the following statements are equivalent:

$a += 2
$a = ($a + 2)

Cuando la variable contiene un valor numérico único, el += operador incrementa el valor existente en la cantidad del lado derecho del operador.When the variable contains a single numeric value, the += operator increments the existing value by the amount on the right side of the operator. A continuación, el operador asigna el valor resultante a la variable.Then, the operator assigns the resulting value to the variable. En el ejemplo siguiente se muestra cómo usar el += operador para aumentar el valor de una variable:The following example shows how to use the += operator to increase the value of a variable:

$a = 4
$a += 2
$a
6

Cuando el valor de la variable es una cadena, el valor del lado derecho del operador se anexa a la cadena, como se indica a continuación:When the value of the variable is a string, the value on the right side of the operator is appended to the string, as follows:

$a = "Windows"
$a += " PowerShell"
$a
Windows PowerShell

Cuando el valor de la variable es una matriz, el += operador anexa los valores del lado derecho del operador a la matriz.When the value of the variable is an array, the += operator appends the values on the right side of the operator to the array. A menos que la conversión de la matriz se escriba de forma explícita, puede anexar cualquier tipo de valor a la matriz, como se indica a continuación:Unless the array is explicitly typed by casting, you can append any type of value to the array, as follows:

$a = 1,2,3
$a += 2
$a
1
2
3
2

yand

$a += "String"
$a
1
2
3
2
String

Cuando el valor de una variable es una tabla hash, el += operador anexa el valor del lado derecho del operador a la tabla hash.When the value of a variable is a hash table, the += operator appends the value on the right side of the operator to the hash table. Sin embargo, dado que el único tipo que se puede Agregar a una tabla hash es otra tabla hash, se produce un error en todas las demás asignaciones.However, because the only type that you can add to a hash table is another hash table, all other assignments fail.

Por ejemplo, el comando siguiente asigna una tabla hash a la $a variable.For example, the following command assigns a hash table to the $a variable. A continuación, usa el += operador para anexar otra tabla hash a la tabla hash existente, agregando eficazmente un nuevo par clave-valor a la tabla hash existente.Then, it uses the += operator to append another hash table to the existing hash table, effectively adding a new key/value pair to the existing hash table. Este comando se ejecuta correctamente, como se muestra en la salida:This command succeeds, as shown in the output:

$a = @{a = 1; b = 2; c = 3}
$a += @{mode = "write"}
$a
Name                           Value
----                           -----
a                              1
b                              2
mode                           write
c                              3

El siguiente comando intenta anexar un entero "1" a la tabla hash en la $a variable.The following command attempts to append an integer "1" to the hash table in the $a variable. Este comando produce un error:This command fails:

$a = @{a = 1; b = 2; c = 3}
$a += 1
You can add another hash table only to a hash table.
At line:1 char:6
+ $a += <<<<  1

La asignación por operador de restaThe assignment by subtraction operator

El operador de sustracción de asignación -= reduce el valor de una variable por el valor que se especifica en el lado derecho del operador.The assignment by subtraction operator -= decrements the value of a variable by the value that is specified on the right side of the operator. Este operador no se puede usar con variables de cadena y no se puede usar para quitar un elemento de una colección.This operator cannot be used with string variables, and it cannot be used to remove an element from a collection.

El -= operador combina dos operaciones.The -= operator combines two operations. En primer lugar, se resta y, a continuación, se asigna.First, it subtracts, and then it assigns. Por lo tanto, las siguientes instrucciones son equivalentes:Therefore, the following statements are equivalent:

$a -= 2
$a = ($a - 2)

En el ejemplo siguiente se muestra cómo utilizar el -= operador para disminuir el valor de una variable:The following example shows how to use of the -= operator to decrease the value of a variable:

$a = 8
$a -= 2
$a
6

También puede utilizar el -= operador de asignación para reducir el valor de un miembro de una matriz numérica.You can also use the -= assignment operator to decrease the value of a member of a numeric array. Para ello, especifique el índice del elemento de la matriz que desea cambiar.To do this, specify the index of the array element that you want to change. En el ejemplo siguiente, el valor del tercer elemento de una matriz (elemento 2) se reduce en 1:In the following example, the value of the third element of an array (element 2) is decreased by 1:

$a = 1,2,3
$a[2] -= 1
$a
1
2
2

No se puede utilizar el -= operador para eliminar los valores de una variable.You cannot use the -= operator to delete the values of a variable. Para eliminar todos los valores asignados a una variable, use los cmdlets Clear-Item o Clear-variable para asignar un valor de $null o "" a la variable.To delete all the values that are assigned to a variable, use the Clear-Item or Clear-Variable cmdlets to assign a value of $null or "" to the variable.

$a = $null

Para eliminar un valor determinado de una matriz, utilice una notación de matriz para asignar un valor de $null al elemento determinado.To delete a particular value from an array, use array notation to assign a value of $null to the particular item. Por ejemplo, la siguiente instrucción elimina el segundo valor (posición de índice 1) de una matriz:For example, the following statement deletes the second value (index position 1) from an array:

$a = 1,2,3
$a
1
2
3
$a[1] = $null
$a
1
3

Para eliminar una variable, use el cmdlet Remove-variable .To delete a variable, use the Remove-Variable cmdlet. Este método es útil cuando la variable se convierte explícitamente en un tipo de datos determinado y se desea una variable sin tipo.This method is useful when the variable is explicitly cast to a particular data type, and you want an untyped variable. El siguiente comando elimina la $a variable:The following command deletes the $a variable:

Remove-Variable -Name a

La asignación mediante el operador de multiplicaciónThe assignment by multiplication operator

La asignación por el operador de multiplicación *= multiplica un valor numérico o anexa el número especificado de copias del valor de cadena de una variable.The assignment by multiplication operator *= multiplies a numeric value or appends the specified number of copies of the string value of a variable.

Cuando una variable contiene un valor numérico único, ese valor se multiplica por el valor del lado derecho del operador.When a variable contains a single numeric value, that value is multiplied by the value on the right side of the operator. Por ejemplo, en el ejemplo siguiente se muestra cómo usar el *= operador para multiplicar el valor de una variable:For example, the following example shows how to use the *= operator to multiply the value of a variable:

$a = 3
$a *= 4
$a
12

En este caso, el *= operador combina dos operaciones.In this case, the *= operator combines two operations. En primer lugar, se multiplica y, a continuación, se asigna.First, it multiplies, and then it assigns. Por lo tanto, las siguientes instrucciones son equivalentes:Therefore, the following statements are equivalent:

$a *= 2
$a = ($a * 2)

Cuando una variable contiene un valor de cadena, PowerShell anexa el número especificado de cadenas al valor, como se indica a continuación:When a variable contains a string value, PowerShell appends the specified number of strings to the value, as follows:

$a = "file"
$a *= 4
$a
filefilefilefile

Para multiplicar un elemento de una matriz, utilice un índice para identificar el elemento que desea multiplicar.To multiply an element of an array, use an index to identify the element that you want to multiply. Por ejemplo, el comando siguiente multiplica el primer elemento de la matriz (posición de índice 0) por 2:For example, the following command multiplies the first element in the array (index position 0) by 2:

$a[0] *= 2

El operador de asignación por divisiónThe assignment by division operator

El operador de asignación por división /= divide un valor numérico por el valor que se especifica en el lado derecho del operador.The assignment by division operator /= divides a numeric value by the value that is specified on the right side of the operator. No se puede usar el operador con variables de cadena.The operator cannot be used with string variables.

El /= operador combina dos operaciones.The /= operator combines two operations. En primer lugar, se divide y se asigna.First, it divides, and then it assigns. Por lo tanto, las dos instrucciones siguientes son equivalentes:Therefore, the following two statements are equivalent:

$a /= 2
$a = ($a / 2)

Por ejemplo, el comando siguiente usa el /= operador para dividir el valor de una variable:For example, the following command uses the /= operator to divide the value of a variable:

$a = 8
$a /=2
$a
4

Para dividir un elemento de una matriz, utilice un índice para identificar el elemento que desea cambiar.To divide an element of an array, use an index to identify the element that you want to change. Por ejemplo, el comando siguiente divide el segundo elemento de la matriz (posición de índice 1) por 2:For example, the following command divides the second element in the array (index position 1) by 2:

$a[1] /= 2

El operador de asignación por móduloThe assignment by modulus operator

El operador de asignación por módulo %= divide el valor de una variable por el valor del lado derecho del operador.The assignment by modulus operator %= divides the value of a variable by the value on the right side of the operator. A continuación, el %= operador asigna el resto (conocido como el módulo) a la variable.Then, the %= operator assigns the remainder (known as the modulus) to the variable. Este operador solo se puede usar cuando una variable contiene un único valor numérico.You can use this operator only when a variable contains a single numeric value. No se puede usar este operador cuando una variable contiene una variable de cadena o una matriz.You cannot use this operator when a variable contains a string variable or an array.

El %= operador combina dos operaciones.The %= operator combines two operations. En primer lugar, divide y determina el resto y, a continuación, asigna el resto a la variable.First, it divides and determines the remainder, and then it assigns the remainder to the variable. Por lo tanto, las siguientes instrucciones son equivalentes:Therefore, the following statements are equivalent:

$a %= 2
$a = ($a % 2)

En el ejemplo siguiente se muestra cómo usar el %= operador para guardar el módulo de un cociente:The following example shows how to use the %= operator to save the modulus of a quotient:

$a = 7
$a %= 4
$a
3

Los operadores de incremento y decrementoThe increment and decrement operators

El operador ++ de incremento aumenta el valor de una variable en 1.The increment operator ++ increases the value of a variable by 1. Cuando se usa el operador de incremento en una instrucción simple, no se devuelve ningún valor.When you use the increment operator in a simple statement, no value is returned. Para ver el resultado, muestre el valor de la variable, como se indica a continuación:To view the result, display the value of the variable, as follows:

$a = 7
++$a
$a
8

Para forzar que se devuelva un valor, incluya la variable y el operador entre paréntesis, como se indica a continuación:To force a value to be returned, enclose the variable and the operator in parentheses, as follows:

$a = 7
(++$a)
8

El operador de incremento se puede colocar delante (prefijo) o después (postfijo) de una variable.The increment operator can be placed before (prefix) or after (postfix) a variable. La versión de prefijo del operador incrementa una variable antes de usar su valor en la instrucción, como se indica a continuación:The prefix version of the operator increments a variable before its value is used in the statement, as follows:

$a = 7
$c = ++$a
$a
8
$c
8

La versión postfija del operador incrementa una variable una vez que su valor se utiliza en la instrucción.The postfix version of the operator increments a variable after its value is used in the statement. En el ejemplo siguiente, las $c $a variables y tienen valores diferentes porque el valor se asigna a $c antes de $a los cambios:In the following example, the $c and $a variables have different values because the value is assigned to $c before $a changes:

$a = 7
$c = $a++
$a
8
$c
7

El operador -- de decremento reduce el valor de una variable en 1.The decrement operator -- decreases the value of a variable by 1. Al igual que con el operador de incremento, no se devuelve ningún valor cuando se usa el operador en una instrucción simple.As with the increment operator, no value is returned when you use the operator in a simple statement. Use paréntesis para devolver un valor, como se indica a continuación:Use parentheses to return a value, as follows:

$a = 7
--$a
$a
6
(--$a)
5

La versión de prefijo del operador reduce una variable antes de usar su valor en la instrucción, como se indica a continuación:The prefix version of the operator decrements a variable before its value is used in the statement, as follows:

$a = 7
$c = --$a
$a
6
$c
6

La versión postfija del operador reduce una variable una vez que su valor se utiliza en la instrucción.The postfix version of the operator decrements a variable after its value is used in the statement. En el ejemplo siguiente, las $d $a variables y tienen valores diferentes porque el valor se asigna a $d antes de $a los cambios:In the following example, the $d and $a variables have different values because the value is assigned to $d before $a changes:

$a = 7
$d = $a--
$a
6
$d
7

Tipos de Microsoft .NET FrameworkMicrosoft .NET Framework types

De forma predeterminada, cuando una variable solo tiene un valor, el valor asignado a la variable determina el tipo de datos de la variable.By default, when a variable has only one value, the value that is assigned to the variable determines the data type of the variable. Por ejemplo, el siguiente comando crea una variable que tiene el tipo "integer" (System. Int32):For example, the following command creates a variable that has the "Integer" (System.Int32) type:

$a = 6

Para buscar el tipo de .NET Framework de una variable, use el método GetType y su propiedad FullName , como se indica a continuación.To find the .NET Framework type of a variable, use the GetType method and its FullName property, as follows. Asegúrese de incluir los paréntesis después del nombre del método GetType , aunque la llamada al método no tenga ningún argumento:Be sure to include the parentheses after the GetType method name, even though the method call has no arguments:

$a = 6
$a.GetType().FullName
System.Int32

Para crear una variable que contenga una cadena, asigne un valor de cadena a la variable.To create a variable that contains a string, assign a string value to the variable. Para indicar que el valor es una cadena, escríbalo entre comillas, como se indica a continuación:To indicate that the value is a string, enclose it in quotation marks, as follows:

$a = "6"
$a.GetType().FullName
System.String

Si el primer valor que se asigna a la variable es una cadena, PowerShell trata todas las operaciones como operaciones de cadena y convierte nuevos valores en cadenas.If the first value that is assigned to the variable is a string, PowerShell treats all operations as string operations and casts new values to strings. Esto sucede en el ejemplo siguiente:This occurs in the following example:

$a = "file"
$a += 3
$a
file3

Si el primer valor es un entero, PowerShell trata todas las operaciones como operaciones de tipo entero y convierte nuevos valores en enteros.If the first value is an integer, PowerShell treats all operations as integer operations and casts new values to integers. Esto sucede en el ejemplo siguiente:This occurs in the following example:

$a = 6
$a += "3"
$a
9

Puede convertir una nueva variable escalar como cualquier .NET Framework tipo colocando el nombre de tipo entre corchetes que preceden al nombre de la variable o al primer valor de asignación.You can cast a new scalar variable as any .NET Framework type by placing the type name in brackets that precede either the variable name or the first assignment value. Al convertir una variable, puede determinar los tipos de datos que se pueden almacenar en la variable.When you cast a variable, you can determine the types of data that can be stored in the variable. Además, puede determinar el comportamiento de la variable al manipularla.And, you can determine how the variable behaves when you manipulate it.

Por ejemplo, el comando siguiente convierte la variable en un tipo de cadena:For example, the following command casts the variable as a string type:

[string]$a = 27
$a += 3
$a
273

En el ejemplo siguiente se convierte el primer valor, en lugar de convertir la variable:The following example casts the first value, instead of casting the variable:

$a = [string]27

Al convertir una variable en un tipo específico, la Convención común es convertir la variable, no el valor.When you cast a variable to a specific type, the common convention is to cast the variable, not the value. Sin embargo, no se puede reconvertir el tipo de datos de una variable existente si su valor no se puede convertir al nuevo tipo de datos.However, you cannot recast the data type of an existing variable if its value cannot be converted to the new data type. Para cambiar el tipo de datos, debe reemplazar su valor, como se indica a continuación:To change the data type, you must replace its value, as follows:

$a = "string"
[int]$a
Cannot convert value "string" to type "System.Int32". Error: "Input string was
not in a correct format." At line:1 char:8 + [int]$a <<<<
[int]$a = 3

Además, cuando se antepone un nombre de variable a un tipo de datos, el tipo de esa variable está bloqueado a menos que se invalide explícitamente el tipo especificando otro tipo de datos.In addition, when you precede a variable name with a data type, the type of that variable is locked unless you explicitly override the type by specifying another data type. Si intenta asignar un valor incompatible con el tipo existente y no invalida explícitamente el tipo, PowerShell muestra un error, como se muestra en el ejemplo siguiente:If you try to assign a value that is incompatible with the existing type, and you do not explicitly override the type, PowerShell displays an error, as shown in the following example:

$a = 3
$a = "string"
[int]$a = 3
$a = "string"
Cannot convert value "string" to type "System.Int32". Error: "Input
string was not in a correct format."
At line:1 char:3
+ $a <<<<  = "string"
[string]$a = "string"

En PowerShell, los tipos de datos de las variables que contienen varios elementos de una matriz se administran de forma diferente a los tipos de datos de las variables que contienen un solo elemento.In PowerShell, the data types of variables that contain multiple items in an array are handled differently from the data types of variables that contain a single item. A menos que se asigne un tipo de datos específicamente a una variable de matriz, el tipo de datos siempre es System.Object [] .Unless a data type is specifically assigned to an array variable, the data type is always System.Object []. Este tipo de datos es específico de las matrices.This data type is specific to arrays.

A veces, puede reemplazar el tipo predeterminado especificando otro tipo.Sometimes, you can override the default type by specifying another type. Por ejemplo, el comando siguiente convierte la variable en un string [] tipo de matriz:For example, the following command casts the variable as a string [] array type:

[string []] $a = "one", "two", "three"

Las variables de PowerShell pueden ser cualquier tipo de datos .NET Framework.PowerShell variables can be any .NET Framework data type. Además, puede asignar cualquier tipo de datos .NET Framework completo que esté disponible en el proceso actual.In addition, you can assign any fully qualified .NET Framework data type that is available in the current process. Por ejemplo, el siguiente comando especifica un System.DateTime tipo de datos:For example, the following command specifies a System.DateTime data type:

[System.DateTime]$a = "5/31/2005"

A la variable se le asignará un valor que se ajuste al System.DateTime tipo de datos.The variable will be assigned a value that conforms to the System.DateTime data type. El valor de la $a variable sería el siguiente:The value of the $a variable would be the following:

Tuesday, May 31, 2005 12:00:00 AM

Asignar varias variablesAssigning multiple variables

En PowerShell, puede asignar valores a varias variables mediante un solo comando.In PowerShell, you can assign values to multiple variables by using a single command. El primer elemento del valor de asignación se asigna a la primera variable, el segundo elemento se asigna a la segunda variable, el tercer elemento a la tercera variable, etc.The first element of the assignment value is assigned to the first variable, the second element is assigned to the second variable, the third element to the third variable, and so on. Por ejemplo, el siguiente comando asigna el valor 1 a la $a variable, el valor 2 a la $b variable y el valor 3 a la $c variable:For example, the following command assigns the value 1 to the $a variable, the value 2 to the $b variable, and the value 3 to the $c variable:

$a, $b, $c = 1, 2, 3

Si el valor de asignación contiene más elementos que variables, todos los valores restantes se asignan a la última variable.If the assignment value contains more elements than variables, all the remaining values are assigned to the last variable. Por ejemplo, el siguiente comando contiene tres variables y cinco valores:For example, the following command contains three variables and five values:

$a, $b, $c = 1, 2, 3, 4, 5

Por lo tanto, PowerShell asigna el valor 1 a la $a variable y el valor 2 a la $b variable.Therefore, PowerShell assigns the value 1 to the $a variable and the value 2 to the $b variable. Asigna los valores 3, 4 y 5 a la $c variable.It assigns the values 3, 4, and 5 to the $c variable. Para asignar los valores de la $c variable a otras tres variables, use el formato siguiente:To assign the values in the $c variable to three other variables, use the following format:

$d, $e, $f = $c

Este comando asigna el valor 3 a la $d variable, el valor 4 a la $e variable y el valor 5 a la $f variable.This command assigns the value 3 to the $d variable, the value 4 to the $e variable, and the value 5 to the $f variable.

Si el valor de asignación contiene menos elementos que variables, no se asigna ningún valor a todas las variables restantes del extremo.If the assignment value contains less elements than variables, all the remaining variables at the end are not assigned any values. Por ejemplo, el siguiente comando contiene tres variables y dos valores:For example, the following command contains three variables and two values:

$a, $b, $c = 1, 2

Por lo tanto, PowerShell asigna el valor 1 a la $a variable y el valor 2 a la $b variable.Therefore, PowerShell assigns the value 1 to the $a variable and the value 2 to the $b variable. No asignará ningún valor a la $c variable.It will not assign any value to the $c variable.

También puede asignar un valor único a varias variables mediante el encadenamiento de las variables.You can also assign a single value to multiple variables by chaining the variables. Por ejemplo, el comando siguiente asigna un valor de "tres" a las cuatro variables:For example, the following command assigns a value of "three" to all four variables:

$a = $b = $c = $d = "three"

Además de usar una operación de asignación para establecer un valor de variable, también puede usar el cmdlet set-variable .In addition to using an assignment operation to set a variable value, you can also use the Set-Variable cmdlet. Por ejemplo, el siguiente comando usa Set-Variable para asignar una matriz de 1, 2, 3 a la $a variable.For example, the following command uses Set-Variable to assign an array of 1, 2, 3 to the $a variable.

Set-Variable -Name a -Value 1, 2, 3

Consulte tambiénSee also

about_Arraysabout_Arrays

about_Hash_Tablesabout_Hash_Tables

about_Variablesabout_Variables

Clear-VariableClear-Variable

Remove-VariableRemove-Variable

Set-VariableSet-Variable