Convertir Cadena a Int – informaticamadridmayor

PowerShell pertenece a una clase de lenguaje dinámico, no fuertemente tipado. Esto significa que no necesita declarar variables y establecer tipos de datos específicos antes de usarlas. Cuando crea una variable, no necesita especificar su tipo: PowerShell intentará resolverlo por sí mismo.

¿Cómo convertir cadenas a enteros en PowerShell?

Al realizar varias acciones en una variable, PowerShell puede determinar automáticamente el tipo de variable, pero esto no siempre funciona bien y correctamente. Recientemente, enfrentamos un problema: el cmdlet de PowerShell devuelve un número en una variable de Cuerda escribe. Por tanto, no podemos compararla con otra variable de tipo Entero. En este artículo, veremos cómo establecer el tipo de una variable de PowerShell y convertir un valor de cadena en un número entero.

Por ejemplo, creemos una variable simple y verifiquemos su tipo usando el método GetType ():

$a = 1

$a.GetType()

PowerShell asignó automáticamente el tipo Int32 (Entero) a esta variable.

$b = "1"

$b.GetType()

Si establece el valor de una variable entre comillas, PowerShell asume que es una cadena y devuelve un tipo de cadena para ella.

Puede especificar tanto el tipo de la variable como el tipo del valor. Los siguientes comandos crearán una variable que contiene un valor numérico:

[int]$number = 1

$number.GetType().FullName

$number1 = [int]1

$number1.GetType().FullName

Insinuación. Otros tipos de datos populares en PowerShell:

  • [string]

  • [char] — código de carácter ASCII

  • [bool] – «Verdadero o falso»;

  • [int] — número de 32 bits;

  • [long] — número de 64 bits;

  • [decimal] — un número de coma flotante de 128 bits y ad al final;

  • [double] — número de punto flotante de 8 bits;

  • [single] — número de coma flotante de 32 bits;

  • [DateTime] — Fecha y hora de almacenamiento del tipo de datos Powershell;

  • [array] — Matriz de PowerShell;

  • [hashtable] – tabla de picadillo;

  • [pscustomonject] — matriz de clave de tipo y valor.

Si intenta asignar un valor de cadena a una variable numérica o intenta realizar otra operación numérica, obtendrá un error:

[int]$number="Test"

No se puede convertir el valor «Prueba» para escribir «System.Int32». Error: «La cadena de entrada no tenía el formato correcto». ArgumentTransformationMetadataExceptionArgumentTransformationMetadataException

powershell convertir a int

Digamos que tiene una variable que contiene una cadena (tipo Sistema.Cadena):

$stringN = “777” 
$stringN.GetType().FullName

La forma más fácil de convertir un valor a System.Int32 es asignar su valor a una nueva variable con un tipo de datos declarado:

$integerN = [int]$stringN

O:

$integerN = [int]::Parse($stringN)

También puede utilizar el -como operador:

$integerN1 = $stringN -as[int]

O convierta el tipo de datos utilizando el método ToInt32 de la clase Convert (el segundo argumento de la clase Toint32 especifica el sistema numérico):

$integerN2 =[convert]::ToInt32($stringN)

Cualquiera de estos métodos convierte la variable String al tipo System.Int32.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *