- ベストアンサー
DOSで複数のファイルを一気に処理したいけど
- DOSで複数のファイルを一気に処理する方法
- DOSのコマンドプロンプトを使って複数のファイルを一括処理したい場合、gawkコマンドを使用します。
- ファイル名にワイルドカードを使用することで、一括処理が可能ですが、注意が必要です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>FOR %%B IN (*.csv) DO gawk -F "$1==2" %%B > %%Bsyorizumi.csv %%Bshorizumi.csv ではなく、%%~nBsyorizumi.csv です。 コマンドプロンプトから、直接入力するのなら、 FOR %B IN (*.csv) DO gawk -F, "$1==2" %B > %~nBsyorizumi.csv と、%を1つにしてください。バッチファイルの中に書くときには%%です。 あるいは、全部gawkでやる方法もありますね。 gawk -F, -v out=shorizumi.csv "$1==2{f=FILENAME;sub(/\.csv/,out,f);print >f}" test*.csv
その他の回答 (3)
- notnot
- ベストアンサー率47% (4900/10358)
>0はsubに使える引数の数としては不正です 私の書いた通りに書かずに、何らかのタイプミスをしたんですね。 gawk "{print sub()}" とか書くと出るエラーです。
お礼
すみません、しばらくほったらかしにしてしまってm(_ _)m
- DIooggooID
- ベストアンサー率27% (1730/6405)
こちらの例 を 参考にして下さい。 ※ 2.ファイル連結のサンプル(renketsu.bat) http://memorva.jp/memo/windows/dos_bat.php FOR文の DO 以降に実際に処理する コマンド記述するので、 DO の後、 copy の代わりに、 gawk -F "$1==2" %%B > %%Bsyorizumi.csv としてみてください。
お礼
ご回答ありがとうございます。 とても難しいですね(汗) 私の場合はコマンドプロンプトで FOR %%B IN (*.csv) DO gawk -F "$1==2" %%B > %%Bsyorizumi.csv と入力すればいいということですか? 試してみます!!
- osahune
- ベストアンサー率47% (288/609)
うろ覚えなんですが・・・ ワイルドカードの「*」をつけて・・というところ・・。 「???」でいけそうな気がしますが・・間違っていましたらごめんなさい^^;
お礼
ありがとうございます。 「*」を「???」でいったりするのですかね。それは考えていませんでした。今、使える環境に無いので今度試してみます!!
補足
???ではダメでした(^_^;
お礼
ご回答ありがとうございます。 コマンドプロンプトはめんどくさいので、バッチファイルでやりました。 でも、gawkの方はエラーが出てしまいました。 syntax error 0はsubに使える引数の数としては不正です 何を言ってるのでしょう。自分が理解していないコマンドだときついですね(汗)