テキストファイルをWordに読み込ませ、Wordの文書校正ツールでちょっとした誤字を拾い上げる、ということをやってみた。

PowerShellのnew-objectはCOMコンポーネントのオブジェクト生成もできちゃうので当然Office絡みの自動化にも使える、と。

$fn = "utf8.txt"
$text = [String]::Join("`n", (get-content -encoding UTF8 $fn))

$word = new-object -comObject "Word.Application"
$word.Visible = $true

$doc = $word.Documents.Add()

$range = $doc.Content
$range.Text = $text

$doc.CheckGrammar()

今までこういうのはJscriptで書いていたんだけども、get-conetntにエンコードを指定できるのが楽ちんでいい(たまたまUTF8なテキストだったので)。対応しているエンコーディングは少ないが、.NET Frameworkのクラスを使って書いてしまえばよい、というのもまたパワフリャ。

Windows Vista Ultimate x64
PowerShell 1.0 x64
Microsoft Word 2007