PowerShellのswitch –fileオプションでSHIFT-JISエンコーディングファイルが読めない
PowerShellで-fileオプションを指定すると、テキスト一行ごとにイテレーターとして処理が行われます。したがって、行ごとに特定のキーワードが含まれる場合、反復処理が多重ループにならず、便利です。
switch –regex –file user.txt
{
“てきすと” { write-host $_}
}
ローカライズされたPowerShellの場合、UTF-16,SHIFT-JIS(MS932),UTF-8が読める…はずなのですが、どうもUTF-8とUTF-16しか認識しないようです。PowerShell 2.0でもこれはダメみたい。Shift-JISファイルを読みたい場合はこうするしかありません。このおかげで超はまりました。
$contents = get-content user.txt
switch –regex $contents
{
“てきすと” { write-host $_}
}
それにしても、いろんなドキュメントでこれができると書かれているのですが、エンコーディングのこと、誰も書いてくれてない…。私だけじゃないよね?