poewrshellのリストの書き方
Sal
powershell powershell入門。今回は標準搭載している配列の書き方から可変な長さのリストについて、誰にでもわかるように解説します。

poewrshellのリストの書き方

  1. 配列の基本的な宣言、書き方
  2. @(アットマーク)を用いた配列の宣言、書き方
  3. 固定長配列の宣言、書き方
  4. 宣言なしに代入することも可能
  5. 配列のスライス
  6. 配列の合計値
  7. 配列の並び替え
  8. 配列にある値が含まれているかどうか知りたい
  9. 二つの配列を直列でつなぎたい
  10. powershellのジャグ配列、多次元配列の宣言、書き方
  11. 可変なサイズの配列をpowershellで使いたい(リスト)
  12. #ここまでの配列の書き方は全て配列の大きさが変わらない前提!
  13. 配列から要素を取り除きたい
## 配列の基本的な宣言、書き方
powershellにおけるベーシックな配列は,区切りで文字列を並べたものである。 サンプルコード

$myArray = 1,2,"Hello World"
$myArray
実行結果

1,
2,
Hello World
## @(アットマーク)を用いた配列の宣言、書き方
@と()の中に,区切りで要素を並べることでも配列の宣言は可能

$jagged = @(1,2,3,4)
アクセスする際は[]で何番目の要素にアクセスしたいか指定する 添字は0始まりであるので

$jagged[1]
実行結果

2
## 固定長配列の宣言、書き方
固定帳の宣言はNew-Object演算子で型と大括弧を宣言した後、配列の大きさを宣言する。

$myArray = New-Object string[] 10
サンプルコード

$myArray = New-Object string[] 10
$myArray[5] = "Hello"
$myArray[5]
実行結果

Hello
## 宣言なしに代入することも可能
poewrshellでは宣言なしに配列を定義して代入することも可能 例えばGet-Processコマンドはプロセスを配列状で返すので

$myArray = Get-Process
のように、Get-Processによる配列をいきなり代入することも可能である。
## 配列のスライス
配列の範囲を指定してアクセスする場合はスライスと呼ばれる仕組みを使う サンプル

$myArray = 1,2,"Hello World"
$myArray[1..2 + 0]
実行例

2
Hello World
1
## 配列の合計値
配列の合計値はForeach-Objectコマンドを使える。

$myArray = 1,2,3
$sum = 0
$myArray | Foreach-Object { $sum += $_ }
$sum
実行結果

6
## 配列の並び替え
配列の並び替えにはSort-Objectを使う

Get-ChildItem | Sort-Object -Descending Length | Select Name,Length
実行例
Name                                                                Length
----                                                                ------
Convert-TextObject.ps1                                                6868
Connect-WebService.ps1                                                4178
Select-FilteredObject.ps1                                             3252
Get-PageUrls.ps1                                                      2878
Get-Characteristics.ps1                                               2515
Get-Answer.ps1                                                        1890
New-GenericObject.ps1                                                 1490
Invoke-CmdScript.ps1                                                  1313
## 配列にある値が含まれているかどうか知りたい
-contains 演算子を使いましょう

"Hello","World" -contains "Hello"
"Hello","World" -contains "There"
実行結果

true
false
## 二つの配列を直列でつなぎたい
+演算子で配列同士をくっつけることはできる。

$firstArray = "Element 1","Element 2","Element 3","Element 4"
$secondArray = 1,2,3,4
$result = $firstArray + $secondArray
$result
実行結果

Element 1
Element 2
Element 3
Element 4
1 
2
3 
4
## powershellのジャグ配列、多次元配列の宣言、書き方
ジャグ配列の宣言は@を使ってのみ達成可能

$jagged = @(
       (1,2,3,4),
       (5,6,7,8)
   )
$jagged[0][1]
$jagged[1][3]
実行結果

2
8
## 可変なサイズの配列をpowershellで使いたい(リスト)
## #ここまでの配列の書き方は全て配列の大きさが変わらない前提!
可変な配列は「System.Collections.ArrayList」を使う サンプル1

$myArray = New-Object System.Collections.ArrayList
[void] $myArray.Add("Hello")
[void] $myArray.AddRange( ("World","How","Are","You") )
$myArray
実行結果

Hello
World
How
Are
You
## 配列から要素を取り除きたい
RemoveAtコマンドを使おう

$myArray.RemoveAt(1)
$myArray
実行結果

Hello
How
Are
You
title:poewrshellのリストの書き方 description:powershell入門。今回は標準搭載している配列の書き方から可変な長さのリストについて、誰にでもわかるように解説します。 img:https://cdn.slidesharecdn.com/ss_thumbnails/windows-powershell-cookbook-the-complete-guide-to-scripting-microsofts-command-shell-190312151315-thumbnail-4.jpg?cb=1552403608 category_script:page_name.startswith("1")