Windows PowerShell で 遊んでみました。
cgwinと比べて容量が少なく、お手軽にインストールできそうだったので PowerShell なるものを入れてみました。 (^-^)//""ぱちぱち
とりあえず、この言語に慣れるために、何かスクリプトを書いてみようかな? 文字化けしたファイル名が邪魔だったのを思い出したので、このファイル名たちを一括変換するようなスクリプトにトライしてみました。。。一応は完成したけど、ちょっと挫折気味www
思ったこと。 ファイル名の変更(ren, Rename-Item)が使えない! とりあえず、Test-Path (ファイルの有無を確認する)で確認してみたら、こちらでも問題発生するし^^; はじめはパス名に日本語(2バイト文字)が含まれるからかな?と思ったけれど、どうやら日本語は問題なく扱えてるようだと言うことがわかりました。 いろいろ検証した結果、ファイル名に「空白(半角スペース)」と特殊文字("["、"]")が含まれていたことが原因のようです。 ダメじゃんw …空白がある場合だけならば、問題なく処理できてました。
コマンドプロンプトで実行する場合には、ファイル名をダブルクォート(")で囲んでやれば解決しそうな気もするんだけど…。 Tabキーで文字列を補完すると、特殊文字の前にはスケープシーケンスがかませらるようです…なるほど^^;
結局、既存のツールを使った方が早かったです^^; UNIX系の方が文字列処理は楽やわ…。
---
Test-Path の場合は -literalPath オプションを使うと、ファイル名に特殊文字が含まれていても問題なく処理してくれるようです。 スクリプトで書くとこんな感じ…。
Test-Path -literalPath $file_name
Rename-Item の場合は…あらへんわぁ^^;