2014-11-05 1 views
6

Sto cercando di trovare informazioni su quando usereste [string[]]$MyStuff. Si tratta di un array di caratteri o solo di un array con elementi che sono stringhe esplicite o ...?In PowerShell, che tipo di dati è [stringa []] e quando lo utilizzeresti?

Ho visto questo utilizzato negli esempi di script e non è davvero chiaro. Spesso l'ho visto usato per le variabili che ricevono l'output di un testo di un'utilità non nativa o come il tipo di dati per un parametro di input di una funzione.

Cosa significano queste parentesi?

+0

Tutte le tue risposte sono state fantastiche. Grazie mille ragazzi! – Cignul9

risposta

12

Definisce una matrice di stringhe. Considerate le seguenti modalità di inizializzazione un array:

[PS] > [string[]]$s1 = "foo","bar","one","two",3,4 
[PS] > $s2 = "foo","bar","one","two",3,4 

[PS] > $s1.gettype() 

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  True  String[]         System.Array 

[PS] > $s2.gettype() 

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  True  Object[]         System.Array 

Per default, una matrice PowerShell è un array di oggetti che sarà semplice per un tipo particolare se necessario. Guardate come si è deciso che tipo il 5 ° elemento di ciascuno di questi sono:

[PS] > $s1[4].gettype() 

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  True  String         System.Object 


[PS] > $s2[4].gettype() 

IsPublic IsSerial Name          BaseType 
-------- -------- ----          -------- 
True  True  Int32         System.ValueType 


[PS] > $s1[4] 
3 
[PS] > $s2[4] 
3 

L'uso di [string[]] durante la creazione $s1 ha fatto sì che una cruda 3 passato alla matrice è stato convertito in un tipo String in contrasto con un Int32 se memorizzato in un array Object.

1

È un array di stringhe. Per esempio:

[string[]] $var = @("Batman", "Robin", "The Joker") 

Allora è possibile accedere la matrice in questo modo:

$var[0] 

Returns "Batman"

$var[1] 

Returns "Robin". E così via.