2010年6月23日水曜日

◆配列関連

PS>Get-Variable arr* | Remove-Variable
PS>
PS>#配列を作る
PS>$arr = @(1,2,3)
PS>$arr.count
3
PS>Write-Host $arr
1 2 3
PS># @( )は省略してもよい
PS>$arr = 1,2,3
PS>Write-Host $arr
1 2 3
PS>#範囲演算子を使った指定
PS>$arr = 1..4
PS>Write-Host $arr
1 2 3 4
PS>#空の配列
PS>$arr = @()
PS>$arr.Count
0
PS>
PS>#型指定した配列を作る
PS>[int[]]$arr = 1,2,3
PS>#これはエラー
PS>$arr += "a"
値 "a" を型 "System.Int32" に変換できません。エラー: "入力文字列の形式
発生場所 行:1 文字:5
+ $arr <<<<  += "a"
    + CategoryInfo          : MetadataError: (:) []、ArgumentTransfor
    + FullyQualifiedErrorId : RuntimeException

PS># 特定サイズの配列を作る
PS>Remove-Variable arr
PS>$arr = New-Object object[] 3
PS>$arr.Count
3
PS>
PS>#配列の加算
PS>$arr1 = 1..3 ; $arr2 = 4..6 ; Write-Host ($arr1 + $arr2)
1 2 3 4 5 6
PS>Write-Host (1..3+4..6)
1 2 3 4 5 6
PS>
PS>#多次元配列
PS>$arrMulti = New-Object "int[,]" 2,3
PS>$arrMulti.Count
6
PS>
PS>#多段階(ジャグ)配列
PS>$arrJag = @((New-Object int[] 2) , (New-Object int[] 3))
PS>$arrJag[1][2] = 5
PS>Write-Host $arrJag
0 0 0 0 5
PS>
PS>#配列要素の削除
PS>$arr = 1,2,3
PS>[Array]::Clear($arr,0,1)
PS>Write-Host $arr
2 3
PS>#配列要素の順番を調べる
PS>[Array]::IndexOf($arr,3)
2
PS>#配列をソートする
PS>$arr = 3,4,2,1,5
PS>[Array]::Sort($arr)
PS>Write-Host $arr
1 2 3 4 5
PS>
PS>#配列要素に対する演算
PS>$a = 1,2,3
PS>$a[2] -= 1
PS>$a
1
2
2
PS>#配列要素の削除
PS>$a = 1,2,3
PS>$a[1] = $null
PS>$a
1
3

PS>#連想配列のソート
PS>$hashtbl = @{k1 = 3;k2 = 1; k3=2}
PS>$hashtbl.GetEnumerator() | sort value

Name                           Value                                     
----                           -----                                     
k2                             1                                         
k3                             2                                         
k1                             3                                         

PS>#配列要素を逆順に
PS>$a = 1,2,3
PS>[array]::Reverse($a)
PS>$a
3
2
1
 

PS>#配列要素の削除
PS>$a = 1,2,3,4
PS>$array = [Collections.ArrayList]$a
PS>$array.RemoveAt(2)
PS>$a = $array.ToArray()
PS>$a.Length
3

1 件のコメント:

  1. PowerShell 配列
    でググったどのサイトよりも情報が豊富で分かりやすく、助かりました。
    またお邪魔します

    返信削除