前回から、Webページを自動取得するPowerShellスクリプトの作成に取り掛かっている。前回は、Windowsに同梱されているcurl.exeを使ってWebページを取得する方法を試し、これをベースにPowerShellスクリプトを作成した。今回はこれをさらに改良していく。
Windowsのcurl.exeを使う
curlコマンドはもともとLinuxなどのUNIX系OSで活用されているソフトウエアだ。シンプルにして強力なので、Webリソースの取得のみならず、Webサーバとの対話など多くの操作を行うことができる万能ツールとして重宝されている。
そして最近、Windowsにもデフォルトでこのコマンドが同梱されるようになった。現在では「C:\Windows\System32\curl.exe」にデプロイされているはずだ。
前回は、このcurl.exeを実行する簡単なPowerShellスクリプトを作成した。次の「netcat.ps1」だ。
#!/usr/bin/env pwsh
#========================================================================
# URLで指定されたリソースを取得
#========================================================================
#========================================================================
# 引数を処理
# -URL url WebリソースのURL
#========================================================================
Param(
[Parameter(Mandatory=$true)][String]$URL = ""
)
#========================================================================
# Webリソース取得に利用するアプリケーション
#========================================================================
$curl='C:\Windows\System32\curl.exe'
#========================================================================
# curl を使って取得する
#========================================================================
& $curl -get $URL
しかし、実はこのスクリプトでは取得できないWebページというものがいくつも存在している。curlにはそうした場合に使用できるオプションが用意されており、ある程度オプションを組み合わせることでより多くのWebページが取得できるようになる。今回はそうした部分に焦点を当てて改良していく。