同じヘッダーを持つ複数のCSVファイルがあり、それらをバッチで結合して、単一のヘッダーのみを保持しようとしています。何か案は?
25539 次
4 に答える
12
MORE +1
1行目以外のすべてを出力するために使用できます。
>new.csv (
type file1.csv
more +1 file2.csv
more +1 file3.csv
REM etc.
)
もちろん、必要に応じて、各ファイルでスキップする行数を調整できます。
現在のフォルダ内のすべてのcsvファイルを組み合わせるには: 編集:新しく作成された出力csvを入力として使用しないように変更
@echo off
setlocal
set first=1
>new.csv.tmp (
for %%F in (*.csv) do (
if defined first (
type "%%F"
set "first="
) else more +1 "%%F"
)
)
ren new.csv.tmp new.csv
明らかに、これはすべてのcsvファイルが同じ形式を共有している場合にのみ効果的です。
編集2015-07-30: いくつかの制限があります:
- タブ文字はスペースの文字列に変換されます
- 各CSVソースファイルの行数は64k行未満である必要があります
于 2012-10-05T17:43:18.103 に答える
6
現在のフォルダー内のすべての CSV ファイルを結合するための dbenham の方法に問題がありました。結果の CSV を時折取得し、セットに含めます。この問題を回避するために修正しました。
@echo off
setlocal
set first=1
set fileName="combinedFiles.csv"
>%fileName% (
for %%F in (*.csv) do (
if not "%%F"==%fileName% (
if defined first (
type "%%F"
set "first="
) else more +1 "%%F"
)
)
)
于 2013-10-25T14:29:04.967 に答える