CSVファイルの結合で質問させてください。


今、複数のCSVファイルがあり全てを結合させるのにコマンドプロンプトを利用し、
copy *.csv output.csv
で問題なく1つのファイルにできます。

実は、これだと元が何というファイルのCSVだったかが結合後ではわからなくなります。
各CSVファイル名を結合後の中身に保持したいです。

結合後のファイルに1列カラムを先頭に追加するような形で、結合前のファイル名(拡張子除く)が
全レコードに挿入されているのが理想です。

どのように記述すればよいでしょうか?
どうぞよろしくお願い致します。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2011/06/05 17:47:49
  • 終了:2011/06/05 20:04:26

ベストアンサー

id:hissssa No.1

hissssa回答回数422ベストアンサー獲得回数1272011/06/05 18:22:52

ポイント100pt

コマンド一発で目的の処理を行うのは無理だと思います。バッチファイル等で処理するしかないでしょう。

以下のバッチを実行すれば、カレントディレクトリ下の*.csvの各行の先頭にファイル名を追加して標準出力に出力します。

@echo off

for %%F in (*.csv) do (

 for /f "delims=" %%L in (%%F) do (

  echo %%F,%%L

 )

)

上記をcsv.bat等の名前で保存して、「csv.bat > output.txt」のように実行すればいいでしょう。ただし出力ファイル名を*.csvにしないように注意してくださいね(そのファイルも処理対象になるため)。

id:miku1973

上手くできました!

ありがとうございます!

2011/06/05 20:04:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません