お世話になっております。
あるディレクトリにある、テキストファイル群でunicode形式で保存されている
ファイル一覧を取得することになり、条件は下記の内容となりました。
・utf-8,utf-16のもの
・但しBOMで判断できるものでよい
powershellで、簡単に作成できると思い試みたのですが、
なかなかうまいコマンドの組み合わせが思いつきませんでした。
(※私が「簡単」と思っているレベルは、メソッドを作成せず、
既存のコマンドレット等使用してパイプつなぎでの一行でできる内容です。)
で、結局、時間がなくメソッドを作成し(といっても大した内容ではないですが、)
抽出できたのですが、こういう内容を、メソッド以外で行う場合の方法ってありますでしょうか。
あらかじめ変数に BOMをいれておいて・・・ 比較できればって発想だったんですが・・・
ちなみに作成した関数の内容と利用したコマンドは、下記のとおりです。。
Name : isunicodetext
CommandType : Function
Definition : param([io.fileinfo]$file) $bom = @(gc $file -Encoding byte | select -First 3)
($bom[0] -eq 0xef -and $bom[1] -eq 0xbb -and $bom[2] -eq 0xbf) -or ($bom -contains 0xfe -and $bom -contai
ns 0xff)
ls -Recurse -Include *.txt | ?{isunicodetext($_)}