Come convertire una stringa in un intero in PowerShell
-
Usa
[int]
per Convertire Stringhe in Interi in PowerShell -
Usa
[System.Int32]
per Convertire Stringhe in Interi in PowerShell - Definire il Tipo di Dato di una Variabile per Convertire Stringhe in Interi in PowerShell
- Conclusione

In PowerShell, sapere come convertire le stringhe in interi è una competenza preziosa. Questo tutorial ti insegnerà a convertire le stringhe in interi in PowerShell.
Esamineremo la tecnica di utilizzare [int]
e [System.Int32]
per eseguire questa conversione, permettendoti di modificare facilmente i tuoi dati.
Usa [int]
per Convertire Stringhe in Interi in PowerShell
In PowerShell, possiamo usare [int]
per convertire una stringa in un intero. Questo si chiama casting di tipo o conversione di tipo.
La seguente sintassi è una semplice dichiarazione di assegnazione in PowerShell, dove stiamo convertendo una stringa in un intero e assegnando il risultato alla variabile $integerVariable
.
Sintassi:
$integerVariable = [int]$stringVariable
Parametri:
$integerVariable
: Questa è una variabile che conterrà il valore intero dopo la conversione.[int]
: Questo viene utilizzato per il casting di tipo del valore di$stringVariable
a un intero.$stringVariable
: Questa è un’altra variabile o espressione che contiene una stringa che vuoi convertire in un intero.
Consideriamo che abbiamo una variabile $a
come mostrato di seguito.
$a = 123
Il tipo di dato di $a
è un intero
.
$a.GetType().Name
Output:
Int32
Ma quando racchiudiamo il valore con " "
, il tipo di dato diventerà string
.
$b = "123"
$b.GetType().Name
Output:
String
Per convertire la stringa ($b = "123"
) in un intero, possiamo usare [int]
come mostrato di seguito.
$b = $b -as [int]
$b.GetType().Name
Nel codice sopra, iniziamo con la variabile $b
. Il valore attuale e il tipo di dato di $b
ci sono sconosciuti a questo punto, ma vogliamo assicurarci che venga trattato come un intero.
Successivamente, il $b -as [int]
, utilizziamo l’operatore -as
per un casting di tipo sicuro. Questo tenta di convertire il valore di $b
nel tipo specificato [int]
.
Se può essere convertito, il risultato viene assegnato di nuovo a $b
. Altrimenti, $b
rimane invariato.
Nella riga successiva, usiamo $b.GetType().Name
per determinare il tipo di dato della variabile $b
dopo l’operazione di casting di tipo.
Ora, vediamo cosa succede con una variabile $b
che ha un valore e un tipo specifici:
-
Se
$b
inizialmente contiene un intero (ad esempio,$b = 42
), il codice non cambierà il suo tipo, e l’output saràInt32
. -
Se
$b
inizialmente contiene una stringa che può essere convertita con successo in un intero (ad esempio,$b = "123"
), il codice cambierà il suo tipo in un intero, e l’output saràInt32
. -
Se
$b
inizialmente contiene una stringa che non può essere convertita in un intero (ad esempio,$b = "hello"
), il codice non cambierà il suo tipo, e l’output sarà il tipo del valore originale, che, in questo caso, è una stringa, quindi l’output saràString
.
Output:
Int32
Dato l’output Int32
, implica che il valore iniziale della variabile $b
(prima di questo frammento di codice) era o un intero o una stringa che poteva essere convertita con successo in un intero.
Usa [System.Int32]
per Convertire Stringhe in Interi in PowerShell
Il [System.Int32]
è una forma di casting di tipo che converte una stringa in un intero in PowerShell, che dice esplicitamente a PowerShell di trattare una variabile o espressione come un tipo di dato Int32
.
Nella sintassi, convertiamo una stringa in $stringValue
in un intero, memorizzando il risultato in $intValue
. Questo viene fatto usando la sintassi [System.Int32]
per specificare il tipo di dato desiderato, rendendo $stringValue
pronto per operazioni numeriche.
Sintassi:
$intValue = [System.Int32]$stringValue
Nel codice, iniziamo impostando una variabile stringa chiamata $stringValue
al valore "456"
. Poi, procediamo a convertire questa stringa in un intero usando [System.Int32]
e memorizziamo il risultato in un’altra variabile, $intValue
.
Dopo questa conversione, chiediamo il tipo di dato della variabile $intValue
usando $intValue.GetType().Name
.
Output:
Int32
L’output ci dice che la variabile $intValue
contiene un intero, specificamente un intero a 32 bit, come indicato da Int32
, che è il nome del tipo di dato.
Definire il Tipo di Dato di una Variabile per Convertire Stringhe in Interi in PowerShell
PowerShell può rilevare da solo il tipo di dato di una variabile.
Non dobbiamo essere specifici riguardo al tipo di dato e dichiarare una variabile. Ma possiamo definire il tipo di dato di una variabile prima di essa in modo da forzare il tipo di dato.
Facciamo un esempio.
[int]$c = "456"
$c.GetType().Name
Nel codice sopra, dichiariamo la variabile e la inizializziamo in questo modo: [int]$c = "456"
. Questa riga dice a PowerShell di fare esplicitamente il casting della stringa "456"
in un intero, e il risultato viene quindi memorizzato nella variabile $c
.
Successivamente, vogliamo sapere il tipo di dato della variabile $c
, quindi usiamo $c.GetType().Name
. Questo è il nostro modo per controllare se il casting di tipo è stato efficace.
Output:
Int32
L’output sopra è Int32
, che indica che la stringa "456"
è stata convertita in un intero. Ma, se provi a forzare un tipo di dato intero a un valore di stringa, riceverai un errore come nell’esempio di codice seguente.
[int]$data = "storage"
$c.GetType().Name
Nel codice sopra, iniziamo dichiarando una variabile chiamata $data
e assegnandole il valore di stringa "storage"
. La riga successiva, [int]$data
, rappresenta un tentativo di forzare il casting della stringa "storage"
in un tipo di dato intero.
Ora, controlleremo il tipo di dato della variabile $data
usando $data.GetType().Name
.
Output:
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
Proviamo a fare il casting come un intero usando [int]
. Tuttavia, poiché la stringa "storage"
non può essere convertita in un intero, PowerShell non cambia il tipo della variabile e restituisce un messaggio di errore "Il formato della stringa di input non era corretto."
.
Conclusione
In questo articolo, abbiamo imparato a convertire stringhe in interi usando [int]
e [System.Int32]
. Ora possiamo facilmente passare da testo a numeri in PowerShell.
Controllando i tipi di variabili, ottieni precisione e versatilità nei tuoi script.