ここから本文です

bat処理に関する質問です。 a.txtというファイルから文字列を検索しヒットした行...

dee********さん

2016/6/2715:29:09

bat処理に関する質問です。
a.txtというファイルから文字列を検索しヒットした行をb.txtに出力する処理を作りたいと考えています。

以下の記述で文字列が半角の場合はうまくいくのですが全角の場合だとうまく検索が出来ていないようです。findstrでは半角の検索しかできないのでしょうか?

他に何か良い方法があれば教えて頂きたいです。

× findstr "あいう" a.csv >> b.csv
○ findstr "abc" a.csv >> b.csv

補足どうやらWindows7ではUTF-8に対して検索ができないみたいですね。。

閲覧数:
60
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

アバター

ID非公開さん

2016/6/3023:10:51

なかなか回答がつかないようですが、バッチ処理では(外部コマンドを使わずには)無理ではないかと思います。
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

とか。

この回答は投票によってベストアンサーに選ばれました!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる