Wie man einen String in eine Ganzzahl in PowerShell umwandelt
-
Verwende
[int]
, um einen String in eine Ganzzahl in PowerShell zu konvertieren -
Verwende
[System.Int32]
, um einen String in eine Ganzzahl in PowerShell zu konvertieren - Definiere den Datentyp einer Variablen, um einen String in eine Ganzzahl in PowerShell zu konvertieren
- Fazit

In PowerShell ist es eine wertvolle Fähigkeit, zu wissen, wie man Strings in Ganzzahlen konvertiert. Dieses Tutorial wird dir beibringen, wie du Strings in Ganzzahlen in PowerShell konvertierst.
Wir werden die Technik untersuchen, die [int]
und [System.Int32]
verwendet, um diese Konvertierung durchzuführen, sodass du deine Daten mühelos ändern kannst.
Verwende [int]
, um einen String in eine Ganzzahl in PowerShell zu konvertieren
In PowerShell können wir [int]
verwenden, um einen String in eine Ganzzahl zu konvertieren. Dies wird Typumwandlung oder Typkonvertierung genannt.
Die folgende Syntax ist eine einfache Zuweisungserklärung in PowerShell, bei der wir einen String in eine Ganzzahl konvertieren und das Ergebnis der Variablen $integerVariable
zuweisen.
Syntax:
$integerVariable = [int]$stringVariable
Parameter:
$integerVariable
: Dies ist eine Variable, die den Ganzzahlwert nach der Konvertierung speichern wird.[int]
: Dies wird verwendet, um den Wert von$stringVariable
in eine Ganzzahl umzuwandeln.$stringVariable
: Dies ist eine andere Variable oder Ausdruck, der einen String enthält, den du in eine Ganzzahl konvertieren möchtest.
Lass uns annehmen, dass wir eine Variable $a
haben, wie unten gezeigt.
$a = 123
Der Datentyp von $a
ist integer
.
$a.GetType().Name
Ausgabe:
Int32
Aber wenn wir den Wert in " "
einschließen, wird der Datentyp zu string
.
$b = "123"
$b.GetType().Name
Ausgabe:
String
Um den Datentyp des Strings ($b = "123"
) in eine Ganzzahl zu konvertieren, können wir [int]
wie unten gezeigt verwenden.
$b = $b -as [int]
$b.GetType().Name
Im obigen Code beginnen wir mit der Variablen $b
. Der aktuelle Wert und Datentyp von $b
sind uns zu diesem Zeitpunkt unbekannt, aber wir möchten sicherstellen, dass er als Ganzzahl behandelt wird.
Als Nächstes verwenden wir $b -as [int]
, wir verwenden den -as
Operator für eine sichere Typumwandlung. Es wird versucht, den Wert von $b
in den angegebenen Typ [int]
zu konvertieren.
Wenn er konvertiert werden kann, wird das Ergebnis zurück in $b
zugewiesen. Andernfalls bleibt $b
unverändert.
In der nächsten Zeile verwenden wir $b.GetType().Name
, um den Datentyp der Variablen $b
nach der Typumwandlungsoperation zu bestimmen.
Jetzt lass uns durchgehen, was mit einer Variablen $b
passiert, die einen bestimmten Wert und Typ hat:
-
Wenn
$b
ursprünglich eine Ganzzahl enthält (z. B.$b = 42
), ändert der Code ihren Typ nicht, und die Ausgabe wirdInt32
sein. -
Wenn
$b
ursprünglich einen String enthält, der erfolgreich in eine Ganzzahl konvertiert werden kann (z. B.$b = "123"
), ändert der Code ihren Typ in eine Ganzzahl, und die Ausgabe wirdInt32
sein. -
Wenn
$b
ursprünglich einen String enthält, der nicht in eine Ganzzahl konvertiert werden kann (z. B.$b = "hello"
), ändert der Code ihren Typ nicht, und die Ausgabe wird der Typ des ursprünglichen Wertes sein, der in diesem Fall ein String ist, sodass die AusgabeString
wäre.
Ausgabe:
Int32
Angesichts der Ausgabe Int32
bedeutet dies, dass der ursprüngliche Wert der Variablen $b
(vor diesem Code-Schnipsel) entweder eine Ganzzahl oder ein String war, der erfolgreich in eine Ganzzahl umgewandelt werden konnte.
Verwende [System.Int32]
, um einen String in eine Ganzzahl in PowerShell zu konvertieren
Das [System.Int32]
ist eine Form der Typumwandlung, die einen String in eine Ganzzahl in PowerShell konvertiert, wobei PowerShell ausdrücklich gesagt wird, eine Variable oder einen Ausdruck als Int32
Datentyp zu behandeln.
In der Syntax konvertieren wir einen String in $stringValue
in eine Ganzzahl und speichern das Ergebnis in $intValue
. Dies geschieht unter Verwendung der [System.Int32]
Syntax, um den gewünschten Datentyp anzugeben, sodass $stringValue
bereit für numerische Operationen ist.
Syntax:
$intValue = [System.Int32]$stringValue
Im Code setzen wir zunächst eine String-Variable namens $stringValue
auf den Wert "456"
. Dann fahren wir fort, diesen String mithilfe von [System.Int32]
in eine Ganzzahl zu konvertieren und speichern das Ergebnis in einer anderen Variablen, $intValue
.
Nach dieser Konvertierung fragen wir nach dem Datentyp der Variablen $intValue
, indem wir $intValue.GetType().Name
verwenden.
Ausgabe:
Int32
Die Ausgabe sagt uns, dass die Variable $intValue
eine Ganzzahl enthält, spezifisch eine 32-Bit-Ganzzahl, wie durch Int32
angezeigt, was der Name des Datentyps ist.
Definiere den Datentyp einer Variablen, um einen String in eine Ganzzahl in PowerShell zu konvertieren
PowerShell kann den Datentyp einer Variablen selbst erkennen.
Wir müssen nicht spezifisch über den Datentyp sein und eine Variable deklarieren. Aber wir können den Datentyp einer Variablen definieren, bevor sie deklariert wird, sodass wir den Datentyp erzwingen können.
Lass uns ein Beispiel geben.
[int]$c = "456"
$c.GetType().Name
Im obigen Code deklarieren wir die Variable und initialisieren sie wie folgt: [int]$c = "456"
. Diese Zeile sagt PowerShell, dass der String "456"
explizit in eine Ganzzahl umgewandelt werden soll, und das Ergebnis wird dann in der Variablen $c
gespeichert.
Als Nächstes möchten wir den Datentyp der Variablen $c
erfahren, also verwenden wir $c.GetType().Name
. Dies ist unser Weg zu überprüfen, ob die Typumwandlung erfolgreich war.
Ausgabe:
Int32
Die obige Ausgabe ist Int32
, was darauf hinweist, dass der String "456"
in eine Ganzzahl umgewandelt wurde. Aber wenn du versuchst, einen ganzzahligen Datentyp auf einen Stringwert zu erzwingen, erhältst du eine Fehlermeldung, wie im folgenden Codebeispiel.
[int]$data = "storage"
$c.GetType().Name
Im obigen Code beginnen wir mit der Deklaration einer Variable namens $data
und weisen ihr den Stringwert "storage"
zu. Die nächste Zeile, [int]$data
, stellt einen Versuch dar, den String "storage"
mit Gewalt in einen ganzzahligen Datentyp umzuwandeln.
Jetzt werden wir den Datentyp der Variablen $data
mithilfe von $data.GetType().Name
überprüfen.
Ausgabe:
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
Wir versuchen, sie als Ganzzahl mit [int]
zu konvertieren. Da der String "storage"
jedoch nicht in eine Ganzzahl konvertiert werden kann, ändert PowerShell den Typ der Variablen nicht und gibt eine Fehlermeldung aus: "Input string was not in a correct format."
.
Fazit
In diesem Artikel haben wir gelernt, Strings in Ganzzahlen mit [int]
und [System.Int32]
zu konvertieren. Jetzt können wir mühelos zwischen Text und Zahlen in PowerShell wechseln.
Durch die Kontrolle über Variablentypen gewinnst du Genauigkeit und Vielseitigkeit in deinen Skripten.