質問: bat処理に関する質問です。 a.txtというファイルから文字列を検索しヒットした行をb.txtに出力する処理を作りたいと考えています。
回答: なかなか回答がつかないようですが、バッチ処理では(外部コマンドを使わずには)無理ではないかと思います。 Windows7に限らず、Shift-JIS しか扱えないと思います。 PowerShellならUTF-8にも対応できます。 Windows7 なら、 PowerShell が標準で入っているはずなので、PowerShellを使ってみませんか? findstrに相当するのは Select-Stringコマンドレットです。(正規表現も使えるし、もっと高機能でオブジェクトを返すので、そのあと行だけを取り出す処理が必要ですが。) BOMありのテキストファイルならUTF8はそのまま読めます。出力はデフォルトでUTF16ですので、エンコードを指定してやる必要がありますが、もちろんUTF8でも出力出来ます。 Select-String "あいう" a.csv | %{$_.line} | Add-Content -Encoding utf8 b.csv BOMなしならGet-Contentコマンドレットでエンコードを指定して読み込みます。 Get-Content -Encoding UTF8 test.csv | Select-String "あいう" | %{$_.line} | Add-Content -Encoding utf8 b.csv とか。