PowerShellのスクリプトサンプル

PowerShellのスクリプトのサンプルとして、URLからRSSを読み込んでタイトル一覧を表示し、数字を入力するとその記事のテキストを表示する、まあ超貧弱版RSSリーダーといったものを作ってみました。
実用性はほとんどないですが、PowerShellのスクリプトがどういうものなのかというのは感じ取っていただけると思います。

#RSSを読み込んで記事を表示
#利用法:path¥rsstest.ps1 [URL] [RSSバージョン] [RSSの文字エンコード] [記事の文字エンコード]
#ex.(PC watch):.¥rsstest.ps1 http://pc.watch.impress.co.jp/sublink/pc.rdf 1.0 UTF-8 shift_jis | more
param($url, $rssVer = "1.0", $rssEnc = "UTF-8", $linkEnc = "UTF-8")
process {
  $wc = New-Object Net.WebClient
  $wc.Encoding = [System.Text.Encoding]::GetEncoding($rssEnc)
  $doc = [XML] $wc.DownloadString($url)
  $count = 0
  $link=@{}
  If($rssVer -eq "1.0"){
    $items = $doc.RDF.item
  } else {
    $items = $doc.rss.channel.item
  }
  ForEach($item in $items){
    Write-Host "[$count]: " + $item.title
    $link.[string] $count = $item.link
    $count++
  }
  $num = Read-Host "Select no."
  If($link.contains([string] $num)){
    $wc.Encoding = [System.Text.Encoding]::GetEncoding($linkEnc)
    $wc.DownloadString($link.[string] $num) -replace "<.*?>","" -replace "[ ¥t]¥n","" -replace "[¥n¥r][¥n¥r]+","`r`n"
  }
}

スクリプトを短くするため、パラメータのチェックなど厳密な処理は全く行っておりませんのであしからず。

 


PowerShellポケットリファレンスを買ってみた

久々に古本屋でない本屋へ行ってみたら、PowerShell関係の新刊が出ていましたので思わず購入してしまいました。
↓これ
Windows PowerShell ポケットリファレンス 牟田口大介著 技術評論社

PowerShellとはWindowsのコマンドプロンプトに代わる、.NETベースの新しいコマンドシェルです。
コマンドプロンプトにはシーケンス処理としては貧弱なバッチ機能しかありませんでしたが、PowerShellには充分なスクリプト言語機能が用意されており、強力なコマンド群と併せてCOMオブジェクトや.NETライブラリも利用できます。
現状ではXP、Vistaともにインストールを行わないと利用できないため、あまり普及していませんが、今後Windowsに標準搭載されるとWSHに代わっていくものになるかもしれません。
今までもPoweShellに関する書籍は何冊かありましたが、コマンド・スクリプト両面においてまとめられたものはなく、また、ポケットサイズのものもありませんでしたので、自分を含めてこういう本がほしかった人は多いと思います。
内容は基礎・コマンドレット一覧・.NETクラス一覧の3部構成で、コマンドレットはもちろん、基礎の部にスクリプト文法に関してもしっかり書かれているので、スクリプトを作るのにも不足はないと思います。特に.NETクラスに関してはスクリプト作成には必須といったあたりが簡潔にまとまっているいるので重宝しそうです。
なんか気持ち悪いくらいほめていますが、あえて文句を言うなら厚くならない程度で実用的なスクリプトのサンプルがあればとも思いました。
あと、入門書ではないのでPowerShellに関してまったく予備知識のない人(他のコマンドシェルを使い慣れている人も)が読むとピンとこない部分もあります。最低限PowerShellに付属のファーストステップガイドを読んでPowerShellの考え方(とクセ)を理解しておくことをお勧めします。
私自身は当分PowerShellスクリプトを仕事で作ることはないと思いますが、プライベートなスクリプトはなるべくPowerShellで作って今後に備えていこうかと。


    サイト内検索

    プロフィール

  • 顔絵
  • kotani(こたに)

    30台後半になって突然脱サラ。フリーのスクリプト系プログラマーとして独立を目論む謎のおやぢ。東京都在住。趣味は古本屋巡り、文具いぢり、機械いぢり、B級グルメ探索等々多岐にわたる。PCを使う作業に関しては何でもかんでも自動化したがる自動化オタク。