質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

解決済

コマンドプロンプトでのCSVファイルの結合

Yoshitaka919
Yoshitaka919

総合スコア9

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

2回答

0評価

0クリップ

9763閲覧

投稿2018/07/30 07:39

前提・実現したいこと

①CSVファイルの先頭列にファイル名が入力された列を追加したい
②①と同様のCSVファイルを最初のファイル以外の先頭行(項目ラベル)を削除して結合したい

発生している問題・エラーメッセージ

現在コマンドプロンプトにて同型のCSVファイルの結合について苦戦しています。
下記のような売上明細のデータを分析したいのですが、何も考えずに一括で結合すると2ファイル名以降の項目ラベル(カテゴリ、担当、購入者)が分析の邪魔になり、かつどの商品のデータなのかがわからなくなってしまいます。

<ファイル>
ドライヤー_4月売上
テレビ_4月売上
ウォーターサーバー_4月売上
・・・
・・・
・・・
・・・

<ファイルの中身>
カテゴリ 担当者 購入者 購入日
家電   佐藤  田中  4/6    ←ファイル名がないので何の商品の売上なのかわからない
家電   佐藤  高橋  4/8
・    ・   ・   ・
・    ・   ・   ・
・    ・   ・   ・
カテゴリ 担当者 購入者 購入日 ←結合すると2ファイル目以降のラベルが分析の邪魔に。
キッチン 宮下  栗原  4/2
キッチン 宮下  桃井  4/11

<理想の状態>
ファイル名 カテゴリ 担当者 購入者 購入日
ドライヤー 家電   佐藤  田中  4/6    
ドライヤー 家電   佐藤  高橋  4/8
・    ・   ・   ・
・    ・   ・   ・
ドライヤー 家電   佐藤  高橋  4/8
ミキサー  キッチン 宮下  栗原  4/2   ←2ファイル目以降の項目ラベルを削除 
ミキサー  キッチン 宮下  桃井  4/11

ファイル名が全レコードに挿入

試したこと

別々の処理だったら可能なのですが、同時に処理を行うことができずに困っています。

<2ファイル目以降のヘッダー削除>

@echo off
setlocal enabledelayedexpansion

set /a counter=0

for /f %%i in ('dir /b *.csv') do (

echo %%i if !counter!==0 ( set /p _head=<%%i echo !_head!>>result.csv ) set /a counter=!counter!+1 for /f "tokens=* skip=1" %%b in (%%i) do ( echo %%b>>result.csv )

)
pause

<先頭列に結合前データ名を挿入>
@echo off

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

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

  echo %%F,%%L

 )

)

補足情報(FW/ツールのバージョンなど)

win10を使用しています。
なにかあと少しでできそうな予感はあるのですが最後の一歩がうまくいかず大変悔しい思いをしています。どうかご協力をお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。