新しいコンピューター言語を学ぶときに最初に行うことの1つは、入力と出力の方法を学ぶことです。ヒント `link:/ windows-Introduction_to_PowerShell [Introduction toPowerShell]`から出力を行う方法を学びました。覚えているかと思いますが、Write-Outputコマンドレットを使用しました。次に、ファイルを読み取り、その出力を画面に表示する方法を学習します。

「C:\ Temp \ Temp.txt」という名前のテキストファイルがあり、10行含まれているとします。これらの行を表示する最も簡単な方法は、Get-Contentコマンドレットを使用することです。このコマンドレットをファイルに対して実行すると、次のようになります(図1を参照)

image

図1.Get-Contentはファイルを読み取ります。

ファイルの最初の3行だけを表示したい場合はどうなりますか?

それを行うにはさまざまな方法がありますが、おそらく最も簡単な方法は変数を使用することです。 PowerShellでは、変数は任意のデータ型にすることができ、変数名は「$」で始まります。変数名の例には、「$ myName」、「$ numbers」、「$ today」などがあります。「=」記号を使用して変数に値を割り当てるため、有効なPowerShellコマンドは

になります。

PS> $myName = 'Barry'

このような背景から、ファイルの最初の3行を表示するのに十分なことがわかりました。ファイルの内容を$ linesという変数に割り当ててから、最初の3行を_its_表示します(図2を参照)

image

図2.変数の使用。

ここでは、ファイルの内容を$ lines変数(実際には配列)に割り当て、構文「[0..2]」を使用して配列の要素0、1、および2にアクセスします。要素0は最初の行です。要素1は2行目です。要素2は3行目です。

配列の最後の行にアクセスするのも同じくらい簡単です。これは負の添え字を使用して行われるため、$ line [-1]は配列の最後の行です。 $ line [-2]は、配列の最後から2番目の行です。次の図は、ファイルの最後の3行を表示する方法を示しています(図3を参照)

image

図3.負の添え字を使用した配列へのアクセス。

ファイルからテキストを取得する別の方法は、ファイルを検索して結果を表示することです。 PowerShellでテキストを検索するには、Select-Stringコマンドレットを使用します。 Select-Stringには多くのスイッチがあり、コマンドレットでヘルプを求めると表示されますが、単純なフォームでは、探しているファイル名とパターンを指定するだけで済みます。したがって、「line」というテキストを含むファイル内のすべての行(すべての行)を検索したい場合は、次のように実行できます(図4を参照)

image

図4.ファイルでパターンを検索する。

Select-Stringは、正規表現を使用して検索するため、非常に強力です。 (「正規表現の概要」というタイトルの別のヒントがあります。)したがって、「l」で始まり1桁で終わるすべての行(つまり、10行目を除くすべての行)を検索する場合は、次のようになります。これ:(図5を参照)

image

図5.正規表現を使用したファイルの検索。

ファイルの読み取りについては多くのことを話しましたので、最後にファイルの書き込みについて説明する必要があります。もちろん、おなじみの “>”を使用することもできます

文字を使用して出力をファイルにリダイレクトしますが、PowerShellでは、Out-Fileコマンドレットを使用して出力をファイルに送信することもできます。

システム上のすべてのアクティブなプロセスのリストを取得したいとします。これを行うためのコマンドレットはGet-Processです。 Get-Processからの出力の一部を次に示します:(図6を参照)

image

図6.Get-Processからの部分的な出力。

最後から8行目が切り捨てられていることに注意してください。その行は「vmware-usbarbitrat …​」で終わります。この出力をファイルに送信するだけの場合、ファイルにもこの切り捨てられた行が含まれます。代わりに、Out-Fileの「-width」スイッチを使用して、切り捨てを回避するために、より広い幅が必要であることを示すことができます。プロセスを取得し、出力をOut-Fileにパイプして、出力の幅を指定するコマンドは次のとおりです。

PS C:\Bat> Get-Process | Out-File C:\Temp\Temp2.txt -width 100

このヒント(13507)は、Windows 7、8、および10に適用されます。