この記事では、PowerShellでインターネット上のファイルをストリームとして読み込む方法について説明します。
ストリームとしてファイルを読み込む
前回、WebClientクラスのDownloadFileを使用して、インターネット上のファイルをダウンロードする方法について説明しました。
PowerShell ファイルをダウンロードする方法
WebClientクラスには、他にも、ストリームとしてファイルの内容を読み込む機能があります。
WebサイトのHTMLファイルの内容をストリームとして読み込むサンプルです。
$url = "https://example.com/index.html"
$webClient = New-Object Net.WebClient
$stream = $webClient.OpenRead($url)
$encode = [Text.Encoding]::GetEncoding("Shift_Jis")
$reader = New-Object IO.StreamReader($stream, $encode)
$content = $reader.ReadToEnd()
$reader.Close()
$stream.Close()
return $content
実行します。
では、スクリプトについて説明します。
3行目の、webClientクラスのOpenReadメソッドは、引数にしていたURLのデータを取得するためのストリームを返します。
5行目は、読み込むエンコードを指定します。今回は「Shift_Jis」を指定しています。
6行目で、StreamReaderオブジェクトを生成しています。
7行目は、ReadToEndメソッドで、ファイルの内容をすべて読み込んでいます。
9、10行目で、StreamReader、Streamをクローズしています。
11行目で取得した文字列を返しています。
まとめ
今回は、PowerShellでインターネット上のファイルをストリームとして読み込む方法について説明しました。