读取多个文件的替代行并将其聚合为单个CSV

时间:2018-09-25 19:35:17

标签: csv batch-file for-loop export-to-csv

这就是我想要做的:

  1. 浏览目录中的所有文件
  2. 从第一行(所有奇数行)开始,遍历其他所有行,并获取该行中的数字。
  3. 将数字和下一行写到output.txt文件

数据如下:

>      234.01 Burgeron/ Tom                       Tom Burgeron
  Here is some information.
>      126.00 Waka/ Judy                   Judy Waka
  Here is some more information.

我正在尝试使其看起来像这样:

"234.01","Here is some information."
"126.00","Here is some more information."

这是我正在编写的批处理文件:

@ECHO off
SETLOCAL EnableDelayedExpansion
//Loop through all files in folder
for /f "tokens=*" %%a in (*) do (
    CALL :GetNumber %%a
    echo "!num!",%%a
) >> FILEOUTPUT.txt

//Get number on the odd-numbered lines
:GetNumber
for /f "tokens=1 delims=>" %%a in (%1) do (
    set "num=%%a"
)

我在获取文件的所有其他行然后读取下一行/将其写入文件时遇到麻烦。我已经看到了如何跳过特定的行,但是没有看到如何彼此跳过。我该如何下一行?

这个批处理文件对我来说有点复杂。任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

显示一种交替处理行的方法:

@ECHO off
SETLOCAL EnableDelayedExpansion
REM Loop through all files in folder
for %%a in (*) do for /f "delims=" %%b in (%%a) do (
  if defined num (
    echo "!num!","%%b"
    set "num="
  ) else (
    for /f "tokens=1 delims=> " %%c in ("%%b") do set num=%%c
  )
)

请注意,上面的脚本不能驻留在包含数据文件的文件夹中,否则它将作为数据处理。