Comment convertir une chaîne en entier dans PowerShell
-
Utilisez
[int]
pour convertir une chaîne en entier dans PowerShell -
Utilisez
[System.Int32]
pour convertir une chaîne en entier dans PowerShell - Définir le type de données d’une variable pour convertir une chaîne en entier dans PowerShell
- Conclusion

Dans PowerShell, savoir comment convertir des chaînes en entiers est une compétence précieuse. Ce tutoriel vous apprendra à convertir des chaînes en entiers dans PowerShell.
Nous allons examiner la technique d’utilisation de [int]
et [System.Int32]
pour effectuer cette conversion, vous permettant ainsi de modifier vos données facilement.
Utilisez [int]
pour convertir une chaîne en entier dans PowerShell
Dans PowerShell, nous pouvons utiliser [int]
pour convertir une chaîne en un entier. Cela s’appelle le typage ou la conversion de type.
La syntaxe suivante est une simple instruction d’affectation dans PowerShell, où nous convertissons une chaîne en entier et affectons le résultat à la variable $integerVariable
.
Syntaxe :
$integerVariable = [int]$stringVariable
Paramètres :
$integerVariable
: Il s’agit d’une variable qui contiendra la valeur entière après conversion.[int]
: Ceci est utilisé pour caster le type de la valeur de$stringVariable
en un entier.$stringVariable
: Il s’agit d’une autre variable ou expression contenant une chaîne que vous souhaitez convertir en entier.
Considérons que nous avons une variable $a
comme indiqué ci-dessous.
$a = 123
Le type de données de $a
est un integer
.
$a.GetType().Name
Sortie :
Int32
Mais lorsque nous enfermons la valeur entre " "
, le type de données deviendra string
.
$b = "123"
$b.GetType().Name
Sortie :
String
Pour convertir le type de données de la chaîne ($b = "123"
) en entier, nous pouvons utiliser [int]
comme indiqué ci-dessous.
$b = $b -as [int]
$b.GetType().Name
Dans le code ci-dessus, nous commençons par la variable $b
. La valeur actuelle et le type de données de $b
nous sont inconnus à ce stade, mais nous voulons nous assurer qu’il est considéré comme un entier.
Ensuite, avec $b -as [int]
, nous utilisons l’opérateur -as
pour un typage sécurisé. Il tente de convertir la valeur de $b
dans le type spécifié [int]
.
S’il peut être converti, le résultat est réaffecté à $b
. Sinon, $b
reste inchangé.
Dans la ligne suivante, nous utilisons $b.GetType().Name
pour déterminer le type de données de la variable $b
après l’opération de typage.
Maintenant, examinons ce qui se passe avec une variable $b
ayant une valeur et un type spécifiques :
-
Si
$b
contient initialement un entier (par exemple,$b = 42
), le code ne changera pas son type, et la sortie seraInt32
. -
Si
$b
contient initialement une chaîne qui peut être convertie avec succès en un entier (par exemple,$b = "123"
), le code changera son type en entier, et la sortie seraInt32
. -
Si
$b
contient initialement une chaîne qui ne peut pas être convertie en entier (par exemple,$b = "hello"
), le code ne changera pas son type, et la sortie sera celle de la valeur originale, qui, dans ce cas, est une chaîne, de sorte que la sortie seraitString
.
Sortie :
Int32
Étant donné la sortie Int32
, cela implique que la valeur initiale de la variable $b
(avant ce code) était soit un entier, soit une chaîne qui pouvait être convertie avec succès en un entier.
Utilisez [System.Int32]
pour convertir une chaîne en entier dans PowerShell
Le [System.Int32]
est une forme de typage qui convertit une chaîne en entier dans PowerShell, ce qui indique explicitement à PowerShell de traiter une variable ou une expression comme un type de données Int32
.
Dans la syntaxe, nous convertissons une chaîne dans $stringValue
en un entier, stockant le résultat dans $intValue
. Cela se fait en utilisant la syntaxe [System.Int32]
pour spécifier le type de données souhaité, rendant $stringValue
prêt pour des opérations numériques.
Syntaxe :
$intValue = [System.Int32]$stringValue
Dans le code, nous commençons par définir une variable de chaîne nommée $stringValue
avec la valeur "456"
. Ensuite, nous procédons à la conversion de cette chaîne en entier à l’aide de [System.Int32]
et stockons le résultat dans une autre variable, $intValue
.
Après cette conversion, nous nous renseignons sur le type de données de la variable $intValue
en utilisant $intValue.GetType().Name
.
Sortie :
Int32
La sortie nous indique que la variable $intValue
contient un entier, spécifiquement un entier 32 bits, comme l’indique Int32
, qui est le nom du type de données.
Définir le type de données d’une variable pour convertir une chaîne en entier dans PowerShell
PowerShell peut détecter le type de données d’une variable par lui-même.
Nous n’avons pas besoin d’être spécifiques sur le type de données et de déclarer une variable. Mais, nous pouvons définir le type de données d’une variable avant cela afin de forcer le type de données.
Prenons un exemple.
[int]$c = "456"
$c.GetType().Name
Dans le code ci-dessus, nous déclarons la variable et l’initialisons comme suit : [int]$c = "456"
. Cette ligne indique à PowerShell de caster explicitement la chaîne "456"
en un entier, et le résultat est ensuite stocké dans la variable $c
.
Ensuite, nous voulons connaître le type de données de la variable $c
, donc nous utilisons $c.GetType().Name
. C’est notre moyen de vérifier si le typage a réussi.
Sortie :
Int32
La sortie ci-dessus est Int32
, ce qui indique que la chaîne "456"
a été convertie en un entier. Mais, si vous essayez de forcer un type entier sur une valeur de chaîne, vous obtiendrez une erreur comme dans l’exemple de code suivant.
[int]$data = "storage"
$c.GetType().Name
Dans le code ci-dessus, nous commençons par déclarer une variable nommée $data
et assigner la valeur de chaîne "storage"
à celle-ci. La ligne suivante, [int]$data
, représente une tentative de caster de force la chaîne "storage"
en un type de données entier.
Maintenant, nous allons vérifier le type de données de la variable $data
en utilisant $data.GetType().Name
.
Sortie :
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
Nous essayons de le caster comme entier en utilisant [int]
. Cependant, étant donné que la chaîne "storage"
ne peut pas être convertie en entier, PowerShell ne change pas le type de la variable et renvoie un message d’erreur "Input string was not in a correct format."
.
Conclusion
Dans cet article, nous avons appris à convertir des chaînes en entiers en utilisant [int]
et [System.Int32]
. Maintenant, nous pouvons facilement passer du texte aux nombres dans PowerShell.
En contrôlant les types de variables, vous gagnez en précision et en polyvalence dans vos scripts.