技術ノート 説明者 Geek School: PowerShell 変数、入力と出力の学習

Geek School: PowerShell 変数、入力と出力の学習

Geek School: PowerShell 変数、入力と出力の学習

単にコマンドを実行することから離れ、本格的なスクリプトの作成に移行すると、データを保存する一時的な場所が必要になります。ここで変数が登場します。

Geek School: PowerShell 変数、入力と出力の学習

このシリーズの以前の記事を必ずお読みください。

Geek School: PowerShell 変数、入力と出力の学習

今週はシリーズの残りの部分もお楽しみに。

変数

Geek School: PowerShell 変数、入力と出力の学習

ほとんどのプログラミング言語では、値を保持する単なるコンテナである変数の使用が許可されています。 PowerShell にも変数があり、非常に使いやすいです。ここでは、「FirstName」という変数を作成し、それに値「Taylor」を与える方法を示します。

$FirstName = “テイラー”

ほとんどの人が最初に疑問に思うのは、なぜ変数名の前にドル記号を付けるのかということですが、これは実際には非常に良い質問です。実際、ドル記号は、コンテナ自体ではなく、変数の内容 (コンテナの内部にあるものを考えてください) にアクセスしたいことをシェルに示すちょっとしたヒントにすぎません。 PowerShell では、変数名にドル記号が含まれていません。つまり、上記の例では、変数名は実際には「FirstName」です。

PowerShell では、変数 PSDrive で作成したすべての変数を確認できます。

gci 変数:

つまり、変数はいつでもシェルから削除できます。

削除項目変数:\FirstName

変数には単一のオブジェクトを含める必要もありません。複数のオブジェクトを変数に簡単に保存することもできます。たとえば、実行中のプロセスのリストを変数に保存したい場合は、それに Get-Process の出力を割り当てるだけです。

$Proc = 取得プロセス

これを理解するコツは、等号の右側が常に最初に評価されることを覚えておくことです。これは、必要に応じてパイプライン全体を右側に配置できることを意味します。

$CPUHogs = 取得プロセス | CPU – 降順で並べ替え |選択 – 最初の 3

CPUHogs 変数には、最も多くの CPU を使用している 3 つの実行中のプロセスが含まれるようになります。

オブジェクトのコレクションを保持する変数がある場合、注意すべき点がいくつかあります。たとえば、変数に対してメソッドを呼び出すと、コレクション内の各オブジェクトに対してメソッドが呼び出されます。

$CPUHogs.Kill()

これにより、コレクション内の 3 つのプロセスがすべて強制終了されます。変数内の単一のオブジェクトにアクセスしたい場合は、それを配列のように扱う必要があります。

$CPUホッグ[0]

これを行うと、コレクション内の最初のオブジェクトが得られます。

Geek School: PowerShell 変数、入力と出力の学習

捕まらないように!

PowerShell の変数はデフォルトで弱く型付けされており、あらゆる種類のデータを含めることができます。これが PowerShell の初心者を常に捕らえているようです。

$a = 10

$b = ’20’

したがって、2 つの変数があり、1 つは文字列を含み、もう 1 つは整数を含みます。では、それらを追加するとどうなるでしょうか?実際には、追加する順序によって異なります。

$a + $b = 30

その間

$b + $a = 2010

最初の例では、最初のオペランドは整数 $a であるため、PowerShell は数学を実行しようとしていると考え、他のオペランドも整数に変換しようとします。ただし、2 番目の例では、最初のオペランドは文字列であるため、PowerShell は残りのオペランドを文字列に変換して連結するだけです。より高度なスクリプト作成者は、変数を予期している型にキャストすることで、この種の問題を防ぎます。

[int]$Number = 5

[int]$Number = ‘5’

上記のどちらの結果も、値が 5 の整数オブジェクトを含む Number 変数になります。

Geek School: PowerShell 変数、入力と出力の学習

入出力

PowerShell は作業を自動化することを目的としているため、ユーザーに情報の入力を求めるプロンプトは可能な限り避けたほうがよいでしょう。そうは言っても、それを避けられない場合もあります。そのような場合に備えて、Read-Host コマンドレットがあります。使い方はとても簡単です:

$FirstName = Read-Host – 「名前を入力してください」というプロンプト

入力した内容はすべて変数に保存されます。

出力の書き込みは、Write-Output コマンドレットを使用するのと同じくらい簡単です。

書き込み-出力「ハウツー ギーク ロックス!」

明日は、私たちが学んだすべてを結びつける場所に参加してください!

「 Geek School: PowerShell 変数、入力と出力の学習」に関するベスト動画選定!

【プログラミング入門】PowerShell【Excel操作編】 ざっくりわかるプログラミング講座
PowerShellとは?メリットやできることをわかりやすく解説