【问题标题】:Merge csv files into one csv with EOL LF使用 EOL LF 将 csv 文件合并为一个 csv
【发布时间】:2018-10-11 10:34:08
【问题描述】:

希望大家能帮忙。 我正在寻找一个批处理文件以将特定文件夹中的所有 CSV 文件与行尾“LF”合并。

下面的脚本创建了一个带有“CRLF”EOL 的输出文件,但是我的自动数据加载器只接受“LF”EOL。

我还想在输出文件中有一个标题。

非常感谢您的帮助,因为我已经浪费了足够多的时间来寻找解决方案。

这是我在下面尝试的。

 @ECHO OFF
SET first=y
SET newfile=new.csv
for %%F in (*.csv) do IF NOT %%F==%newfile% (
  if defined first (
    COPY /y "%%F" %newfile% >nul
    set "first="
  ) else (
    FOR /f "skip=1delims=" %%i IN (%%F) DO >> %newfile% ECHO %%i
  )
) 

【问题讨论】:

  • 欢迎成为 SO 的新用户。请使用tour 并阅读How to AskStack Overflow 不是免费的脚本编写服务。预计会有自己的研究和代码尝试。 Editminimal reproducible example 中包含您的 代码的问题。两个提示:第一个line endings 第二个提供的标题都是相同的使用more +1
  • 输入文件是否只有LF终止?
  • 输入文件是LF。但是输出文件是CRLF。
  • 以后用 NotePad++ 之类的编辑器将 CR+LF 转换为 LF 怎么样?因为在纯批处理脚本中,创建 LF-only 文件并不是一件容易的事……

标签: csv batch-file merge


【解决方案1】:

我快到了,但是第二个 CSV 文件将 EOL 更改为 CRLF。下面是我的代码。

@echo off
set "first=Yes"
(for %%a in ("H:\data dumps\folder\combine\*.csv") do (
  if defined first (
    type "%%a"
    set "first="
  ) else (
    more +1 "%%a"
  )
))>"H:\data dumps\folder\combine\test.csv"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-30
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 2015-05-01
    • 1970-01-01
    • 2015-03-09
    相关资源
    最近更新 更多