Como Converter String para Inteiro no PowerShell
-
Use
[int]
para Converter String em Inteiro no PowerShell -
Use
[System.Int32]
para Converter String em Inteiro no PowerShell - Defina o Tipo de Dado de uma Variável para Converter String em Inteiro no PowerShell
- Conclusão

No PowerShell, saber como converter strings em inteiros é uma habilidade valiosa. Este tutorial irá ensinar como converter strings em inteiros no PowerShell.
Vamos abordar a técnica de usar [int]
e [System.Int32]
para realizar essa conversão, permitindo que você modifique seus dados facilmente.
Use [int]
para Converter String em Inteiro no PowerShell
No PowerShell, podemos usar [int]
para converter uma string em um inteiro. Isso é chamado de type casting ou conversão de tipo.
A seguinte sintaxe é uma simples declaração de atribuição no PowerShell, onde estamos convertendo uma string em um inteiro e atribuindo o resultado à variável $integerVariable
.
Sintaxe:
$integerVariable = [int]$stringVariable
Parâmetros:
$integerVariable
: Esta é uma variável que irá armazenar o valor inteiro após a conversão.[int]
: Isso é usado para fazer o type casting do valor de$stringVariable
para um inteiro.$stringVariable
: Esta é outra variável ou expressão contendo uma string que você deseja converter em um inteiro.
Vamos considerar que temos uma variável $a
, conforme mostrado abaixo.
$a = 123
O tipo de dado de $a
é um inteiro
.
$a.GetType().Name
Saída:
Int32
Mas quando envolvemos o valor com " "
, o tipo de dado se tornará string
.
$b = "123"
$b.GetType().Name
Saída:
String
Para converter o tipo de dado da string ($b = "123"
) em um inteiro, podemos usar [int]
como mostrado abaixo.
$b = $b -as [int]
$b.GetType().Name
No código acima, começamos com a variável $b
. O valor atual e o tipo de dado de $b
são desconhecidos para nós neste momento, mas queremos garantir que seja tratado como um inteiro.
Em seguida, no $b -as [int]
, usamos o operador -as
para type casting seguro. Ele tenta converter o valor de $b
para o tipo especificado [int]
.
Se puder ser convertido, o resultado é atribuído de volta a $b
. Caso contrário, $b
permanece inalterado.
Na próxima linha, usamos $b.GetType().Name
para determinar o tipo de dado da variável $b
após a operação de type casting.
Agora, vamos analisar o que acontece com uma variável $b
tendo um valor e tipo específicos:
-
Se
$b
inicialmente contém um inteiro (por exemplo,$b = 42
), o código não mudará seu tipo, e a saída seráInt32
. -
Se
$b
inicialmente contém uma string que pode ser convertida com sucesso em um inteiro (por exemplo,$b = "123"
), o código mudará seu tipo para um inteiro, e a saída seráInt32
. -
Se
$b
inicialmente contém uma string que não pode ser convertida em um inteiro (por exemplo,$b = "hello"
), o código não mudará seu tipo, e a saída será o tipo do valor original, que, neste caso, é uma string, então a saída seriaString
.
Saída:
Int32
Dada a saída Int32
, isso implica que o valor inicial da variável $b
(antes deste trecho de código) era um inteiro ou uma string que poderia ser convertida com sucesso em um inteiro.
Use [System.Int32]
para Converter String em Inteiro no PowerShell
O [System.Int32]
é uma forma de typecasting que converte uma string em um inteiro no PowerShell, que informa explicitamente ao PowerShell para tratar uma variável ou expressão como um tipo de dado Int32
.
Na sintaxe, convertendo uma string em $stringValue
em um inteiro, armazenamos o resultado em $intValue
. Isso é feito usando a sintaxe [System.Int32]
para especificar o tipo de dado desejado, tornando $stringValue
pronto para operações numéricas.
Sintaxe:
$intValue = [System.Int32]$stringValue
No código, começamos definindo uma variável string chamada $stringValue
com o valor "456"
. Em seguida, procedemos para converter essa string em um inteiro usando [System.Int32]
e armazenar o resultado em outra variável, $intValue
.
Após essa conversão, indagamos sobre o tipo de dado da variável $intValue
usando $intValue.GetType().Name
.
Saída:
Int32
A saída nos informa que a variável $intValue
contém um inteiro, especificamente um inteiro de 32 bits, como indicado por Int32
, que é o nome do tipo de dado.
Defina o Tipo de Dado de uma Variável para Converter String em Inteiro no PowerShell
O PowerShell pode detectar o tipo de dado de uma variável por conta própria.
Não precisamos ser específicos sobre o tipo de dado e declarar uma variável. Mas podemos definir o tipo de dado de uma variável antes dela para forçar o tipo de dado.
Vamos dar um exemplo.
[int]$c = "456"
$c.GetType().Name
No código acima, declaramos a variável e a inicializamos assim: [int]$c = "456"
. Esta linha informa ao PowerShell para fazer o type casting explícito da string "456"
para um inteiro, e o resultado é então armazenado na variável $c
.
Em seguida, queremos saber o tipo de dado da variável $c
, então usamos $c.GetType().Name
. Esta é a nossa maneira de verificar se o type casting foi bem-sucedido.
Saída:
Int32
A saída acima é Int32
, indicando que a string "456"
foi convertida em um inteiro. Mas, se você tentar forçar um tipo de dado inteiro para um valor de string, você verá um erro como no seguinte exemplo de código.
[int]$data = "storage"
$c.GetType().Name
No código acima, começamos declarando uma variável chamada $data
e atribuindo a ela o valor string "storage"
. A próxima linha, [int]$data
, representa uma tentativa de forçar o type casting da string "storage"
para um tipo de dado inteiro.
Agora, vamos verificar o tipo de dado da variável $data
usando $data.GetType().Name
.
Saída:
Cannot convert value "storage" to type "System.Int32". Error: "Input string was not in a correct format."
At line:1 char:1
+ [int]$data = "storage"
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : MetadataError: (:) [], ArgumentTransformationMetadataException
+ FullyQualifiedErrorId : RuntimeException
Tentamos fazer o casting como um inteiro usando [int]
. No entanto, como a string "storage"
não pode ser convertida em um inteiro, o PowerShell não muda o tipo da variável e retorna uma mensagem de erro "Input string was not in a correct format."
.
Conclusão
Neste artigo, aprendemos a converter strings em inteiros usando [int]
e [System.Int32]
. Agora, podemos facilmente fazer a transição entre texto e números no PowerShell.
Controlando os tipos de variável, você ganha precisão e versatilidade em seus scripts.