PowerShell変数と配列
前回の”初心者向けPowerShellスクリプトチュートリアル”では、PowerShellコンソールを使用してスクリプトを実行する方法と、コマンドレットとは何か、
この記事では、変数と配列について、それらが何であるか、そしてそれらを作成、削除、変更する方法を含めて説明します。,i>変数のリスト
PowerShell配列
- 配列リスト
- 配列インデックス
PowerShell配列の例
- 配列のソート
配列に追加
Powershell変数
変数は、値が格納されるメモリの単位です。, PowerShellの変数は”$”(ドル記号)で始まり、その名前には任意の文字、数字、下線を含めることができます。 変数に値を代入するには、”=”演算子を使用します。 変数の値を表示するには、変数を入力するだけです。,
文字列に数値を追加すると、数値は自動的に文字列になります。
$var1 = "Netwrix"$var2 = 2018$var3 = $var1 + $var2$var3
変数タイプ
PowerShell変数タイプは、割り当てた値に基づいて自動的に設定されますが、割り当てた値に基づいて値を割り当てることもできます。手動で入力します。
$var1 = "Netwrix"
変数の型を調べるには、”gettype()”パラメータを使用します。
$var1 = "Netwrix"$var1.GetType().FullName
私たちの$var1変数には”システム”があります。,文字列”タイプ。
すべてのPowerShell変数タイプの説明は次のとおりです。
変数に書き込むことができることをすでに理解しているでしょう明確な値だけでなく、クラスシステムに気づいたことでしょう。テーブル内のオブジェクト。 この変数には、任意のコマンドレットの出力を記述できます。
変数スコープ
PowerShellの変数スコープは、ローカルまたはグローバルのいずれかになります。 既定では、変数にはローカルスコープがあります。, たとえば、ローカル変数は現在の関数またはスクリプトで使用できますが、グローバル変数は現在のPowerShellセッション全体でアクティブです。 グローバル変数を表すには、次のコマンドに示すように、$Global:variable=valueの形式を使用します。
$Global:var4 = 12
PowerShell Variable Example
List variables
現在使用可能なすべての変数を一覧表示するには、ls variable:*コマンドを実行します。, 出力の例は次のとおりです。
Set variable
変数を作成するには、値を割り当てるだけです。 たとえば、コマンド$var4=”variableexample”は、$var4という名前の変数を作成し、それに文字列値を割り当てます。 二重引用符(“”)は、文字列値が変数に割り当てられていることを示します。
Get variable
これは、別のコマンドレットを使用して、list variableコマンドと非常によく似ています。
Get-Variable | Out-String
Print variable
変数aを出力できます。txt、。csvまたはHTMLファイル。
aに書き込みます。,txtファイルでは、Out-Fileコマンドを使用します。
$var5 = "Hello World!"$var5 | Out-File C:\scripts\Hello_World.txt
データをaにエクスポートします。,”d2d13912ee”>
HTMLファイルに書き込むには、ConvertTo-Htmlコマンドを使用します。
$var6 = Get-Process$var6 | ConvertTo-Html -Property Name, Path > C:\scripts\processes.html
エクスポートしたファイルを読み取るには、Get-Contentコマンドレットを使用します。
Get-Content C:\scripts\processes.csv
clear variable
変数の内容をクリアするには、clear-VARIABLEコマンドレットを使用します。
Clear-Variable -name var6 #without $
remove variable
変数を完全に削除するには、Remove-variableコマンドレットを使用します。
Remove-Variable -name var6 #without $
powershell arrays
配列は変数の型です。, これは、特定の順序で配置されたコンポーネント(配列要素)のセットです。 配列の要素には順番に番号が付けられ、そのインデックス番号を使用して要素にアクセスします。
配列を作成するときは、既定のPowerShellの動作に注意してください。 複数の要素を持つ配列を作成すると、PowerShellは意図したとおりに配列を作成します。 たとえば、配列にいくつかの数値を入れて、変数のデータ型を確認します。
$array1 = 1, 2, 3$array1.GetType()
ご覧のように、この場合、PowerShellは配列を作成しました(システム。配列)。,
ただし、変数に一つだけの値を入れると、PowerShellは配列を作成しません。
$array1 = 1$array1.GetType()
もちろん、特定のコマンドを実行した結果として受け取るオブジェクトの数を事前に知ることはできませんので、結果を常に配列として扱うコードが必要です。
あなたは多くの方法でこれを行うことができます。 たとえば、”,”演算子を使用できます。 コンマが二項演算子として使用される場合、通常の配列が作成されます。, たとえば、一つの要素からなる配列を取得する方法は次のとおりです。
$array1 = ,1$array1.GetType()
または、変数のデータ型を明示的に指定することもできます。
]$array1 = 1$array1.GetType()
最後に、オブジェクトがまったく指定されていなくても配列を形成する部分式演算子”@”を使用して配列を作成することもできます。 変数を配列として初期化し、その数を気にせずにオブジェクトを追加することは非常に便利です。,
$array3 = @()$array3.GetType()
配列の各要素には独自のデータ型があり、typeオブジェクトを使用すると配列に任意の値を追加できます。 必要に応じて、配列のメンバーを特定のデータ型に制限することができます—次に、”型付き配列”を作成します。, たとえば、配列要素が整数値でなければならないことを指定できます。
]$array1 = 1$array1.GetType()
したがって、システムプロセスを配列メンバーとして定義します。
]$array1 = Get-Process$array1.GetType()
配列リスト
配列を頻繁に変更または検索する場合は、ArrayListクラスを使用できますこれは、アイテムを簡単に追加、削除、検索できるように設計されています。
$array3 = New-Object System.Collections.ArrayList
array index
配列内のインデックスは値であり、通常は配列要素を識別および参照するために使用される数値整数です。, 配列の指標を開始でシミュレーションによっては、プログラミングの言語です。 Windows PowerShell配列はゼロベースであるため、配列$var3(”要素ゼロ”)の最初の要素を参照するには、$var3と記述します。
$var3 = "first", "second", "third"
多次元配列
多次元配列は、実際のデータベースに書き込まずにテーブルに情報を格納するために使用できる変数です。 ハッシュテーブルのように見えますが、文字列や整数など、さまざまなタイプの情報を格納できます。, 実際、多次元配列は、PowerShell環境内に各セルに独自のインデックスがある列と行を持つテーブルとして想像することができます。
PowerShell配列の例
配列のソート
配列にデータ型が一つしか含まれていない場合は、Sortメソッドを使用して値をソートできます。
$array3 | Sort
複数のデータ型を持つ配列をソートするには、Sort-Objectコマンドレットを使用する必要があります。,
配列に追加
まず、配列を作成しましょう。
$array5 = "one", "two", "three", "four", "five"$array5.gettype()
配列を簡単に変更するには、arraylistコレクションに追加する必要があります。
$ArrayList1 = $array5$ArrayList1.GetType()
ご覧のとおり、ベースタイプが変更され、配列を簡単に変更できます。
$ArrayList1.Add("six")$ArrayList1.Remove("three")$ArrayList1
配列の長さ
配列内の要素の数を返すには、配列内の要素の数を返します。,長さパラメータ:
$array6 = 1,2,3,4,5,6echo $array6.Length
配列から項目を削除します
項目を削除するには、を使用します。Removeコマンド。, 繰り返しますが、arraylistを使用する方が良いでしょう。
$ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1
Array contains
配列内の要素のいずれかに特定の値が含まれているかどうかを確認するには、Containsメソッドを使用します。
$array7 = 1,2,5,8,3,4,5$array7.Contains(2)$array7.Contains(12)
clear array
powershellの配列操作のほとんどは比較的簡単に実行できますが、単純に配列を削除する方法はありません。, 配列全体を取り除く最も簡単な方法は、変数$nullを割り当てることです。
$array7 = $null$array7
配列がnullであるかどうかを確認するには、次のスクリプトを実行します。
$array7 -eq $null
PowerShellでは、変数がnullの場合、メソッドを適用することはできません。—–
配列を印刷
配列全体を印刷するには、変数を印刷するために説明したのと同じ方法を使用することができます。
aに書き込みます。txtファイルを出力するには、Out-Fileコマンドを使用します。
$var5 | Out-File C:\scripts\array.txt
aにエクスポートします。,csvファイルは、Export-Csvコマンドを使用します。
$var6 | Export-Csv -Path C:\scripts\array.csv
HTMLファイルに書き込むには、ConvertTo-Htmlコマンドを使用します。
$var6 | ConvertTo-Html > C:\scripts\processes.html
配列をループします。
配列内の各要素を次々に処理するためには、foreach演算子を使用してループを作成する必要があります。 たとえば、文字列配列を宣言し、配列内の各単語の長さをカウントする場合は、次のスクリプトを実行する必要があります。
$array8 = @("Earth","Mercury","Venus","Jupiter","Saturn","Mars", "Neptune", "Pluto") foreach ($array in $array8) { "$array = " + $array.length }
この記事では、変数とその型について学びました。, その後、一つの変数型、つまり配列を詳細に調べ、それをどのように使うかを学びました。 この情報を使用すると、PowerShellにさらに深く飛び込む準備ができています。