Batch file 批处理-合并两行并添加逗号以将txt格式重新格式化为csv格式

Batch file 批处理-合并两行并添加逗号以将txt格式重新格式化为csv格式,batch-file,Batch File,我有一些格式化文本,如下所示: 5 4294967296 4 4294967296 2 4294967296 2 4294967296 2 4294967296 我想将其制作成一个.csv文件,其中每两行连接在一起,如下所示: 54294967296 44294967296 24294967296 24294967296 24294967296 我怎样才能批量完成这项工作?我知道如何读取文件,我真正需要做的就是将.txt改为.csv。我只是被困在如何批量组合生产线的问题上 我意识到这有点类似,但

我有一些格式化文本,如下所示:

5
4294967296
4
4294967296
2
4294967296
2
4294967296
2
4294967296

我想将其制作成一个.csv文件,其中每两行连接在一起,如下所示:

54294967296
44294967296
24294967296
24294967296
24294967296

我怎样才能批量完成这项工作?我知道如何读取文件,我真正需要做的就是将.txt改为.csv。我只是被困在如何批量组合生产线的问题上


我意识到这有点类似,但是这个答案搜索了一个文本模式,我没有这个模式。

我在Linux机器上,所以我不能测试它,但应该是这样的

@echo off
SETLOCAL enableextensions enabledelayedexpansion
set COUNT=0
set even_odd = 1

for /f %%c in ("file.txt") do (
  set /A count=%count% + 1
  set /A even_odd=%count% %% 2
  :: First line is odd (1), ever other is even (0)
  if "%even_odd%" == "1" (
     echo %%c>> file.csv
     echo ,>> file.csv
     :: Odd line: Write the line to the CSV, plus a comma
  ) else (
     echo %%c>> file.csv
     echo.>> file.csv
     :: Even line: Write the line to the CSV, plus a line break
  )
)

我在Linux机器上,所以我不能测试它,但它应该是这样的

@echo off
SETLOCAL enableextensions enabledelayedexpansion
set COUNT=0
set even_odd = 1

for /f %%c in ("file.txt") do (
  set /A count=%count% + 1
  set /A even_odd=%count% %% 2
  :: First line is odd (1), ever other is even (0)
  if "%even_odd%" == "1" (
     echo %%c>> file.csv
     echo ,>> file.csv
     :: Odd line: Write the line to the CSV, plus a comma
  ) else (
     echo %%c>> file.csv
     echo.>> file.csv
     :: Even line: Write the line to the CSV, plus a line break
  )
)

我在Linux机器上,所以我不能测试它,但它应该是这样的

@echo off
SETLOCAL enableextensions enabledelayedexpansion
set COUNT=0
set even_odd = 1

for /f %%c in ("file.txt") do (
  set /A count=%count% + 1
  set /A even_odd=%count% %% 2
  :: First line is odd (1), ever other is even (0)
  if "%even_odd%" == "1" (
     echo %%c>> file.csv
     echo ,>> file.csv
     :: Odd line: Write the line to the CSV, plus a comma
  ) else (
     echo %%c>> file.csv
     echo.>> file.csv
     :: Even line: Write the line to the CSV, plus a line break
  )
)

我在Linux机器上,所以我不能测试它,但它应该是这样的

@echo off
SETLOCAL enableextensions enabledelayedexpansion
set COUNT=0
set even_odd = 1

for /f %%c in ("file.txt") do (
  set /A count=%count% + 1
  set /A even_odd=%count% %% 2
  :: First line is odd (1), ever other is even (0)
  if "%even_odd%" == "1" (
     echo %%c>> file.csv
     echo ,>> file.csv
     :: Odd line: Write the line to the CSV, plus a comma
  ) else (
     echo %%c>> file.csv
     echo.>> file.csv
     :: Even line: Write the line to the CSV, plus a line break
  )
)
剧本:

@ECHO OFF
SETLOCAL enableextensions enabledelayedexpansion
set "file=D:\bat\files\30356343"
set "line="
(for /F "usebackq tokens=*" %%G in ("%file%.txt") do (
    if defined line (
        echo !line!,%%G
        set "line="
    ) else (
        set "line=%%G"
    )
))>"%file%.csv"

rem show results
ECHO ON
type "%file%.txt"
type "%file%.csv"
输出

==>type "D:\bat\files\30356343.txt"
5
4294967296
4
4294967297
2
4294967298
2
4294967299

==>type "D:\bat\files\30356343.csv"
5,4294967296
4,4294967297
2,4294967298
2,4294967299

==>
资源(必读):

  • (命令参考)
  • (其他特殊性)
  • (专页)
    • 脚本:

      @ECHO OFF
      SETLOCAL enableextensions enabledelayedexpansion
      set "file=D:\bat\files\30356343"
      set "line="
      (for /F "usebackq tokens=*" %%G in ("%file%.txt") do (
          if defined line (
              echo !line!,%%G
              set "line="
          ) else (
              set "line=%%G"
          )
      ))>"%file%.csv"
      
      rem show results
      ECHO ON
      type "%file%.txt"
      type "%file%.csv"
      
      输出

      ==>type "D:\bat\files\30356343.txt"
      5
      4294967296
      4
      4294967297
      2
      4294967298
      2
      4294967299
      
      ==>type "D:\bat\files\30356343.csv"
      5,4294967296
      4,4294967297
      2,4294967298
      2,4294967299
      
      ==>
      
      资源(必读):

      • (命令参考)
      • (其他特殊性)
      • (专页)
        • 脚本:

          @ECHO OFF
          SETLOCAL enableextensions enabledelayedexpansion
          set "file=D:\bat\files\30356343"
          set "line="
          (for /F "usebackq tokens=*" %%G in ("%file%.txt") do (
              if defined line (
                  echo !line!,%%G
                  set "line="
              ) else (
                  set "line=%%G"
              )
          ))>"%file%.csv"
          
          rem show results
          ECHO ON
          type "%file%.txt"
          type "%file%.csv"
          
          输出

          ==>type "D:\bat\files\30356343.txt"
          5
          4294967296
          4
          4294967297
          2
          4294967298
          2
          4294967299
          
          ==>type "D:\bat\files\30356343.csv"
          5,4294967296
          4,4294967297
          2,4294967298
          2,4294967299
          
          ==>
          
          资源(必读):

          • (命令参考)
          • (其他特殊性)
          • (专页)
            • 脚本:

              @ECHO OFF
              SETLOCAL enableextensions enabledelayedexpansion
              set "file=D:\bat\files\30356343"
              set "line="
              (for /F "usebackq tokens=*" %%G in ("%file%.txt") do (
                  if defined line (
                      echo !line!,%%G
                      set "line="
                  ) else (
                      set "line=%%G"
                  )
              ))>"%file%.csv"
              
              rem show results
              ECHO ON
              type "%file%.txt"
              type "%file%.csv"
              
              输出

              ==>type "D:\bat\files\30356343.txt"
              5
              4294967296
              4
              4294967297
              2
              4294967298
              2
              4294967299
              
              ==>type "D:\bat\files\30356343.csv"
              5,4294967296
              4,4294967297
              2,4294967298
              2,4294967299
              
              ==>
              
              资源(必读):

              • (命令参考)
              • (其他特殊性)
              • (专页)
              @echo off
              setlocal
              调用:suboutput.csv
              后藤:EOF
              :sub
              设置/P“行=”
              :nextPair
              设置/P“行=%line%,”
              设置/P“行=%line%”
              回音/
              如果“%line:~8%”“eq”转到下一个航空公司
              退出/B
              
              @echo off
              setlocal
              调用:suboutput.csv
              后藤:EOF
              :sub
              设置/P“行=”
              :nextPair
              设置/P“行=%line%,”
              设置/P“行=%line%”
              回音/
              如果“%line:~8%”“eq”转到下一个航空公司
              退出/B
              
              @echo off
              setlocal
              调用:suboutput.csv
              后藤:EOF
              :sub
              设置/P“行=”
              :nextPair
              设置/P“行=%line%,”
              设置/P“行=%line%”
              回音/
              如果“%line:~8%”“eq”转到下一个航空公司
              退出/B
              
              @echo off
              setlocal
              调用:suboutput.csv
              后藤:EOF
              :sub
              设置/P“行=”
              :nextPair
              设置/P“行=%line%,”
              设置/P“行=%line%”
              回音/
              如果“%line:~8%”“eq”转到下一个航空公司
              退出/B
              
              基本逻辑正常,但在windows上,每个
              echo
              生成一个额外的换行符,因此不能用多个
              echo
              s构建一行。基本逻辑正常,但在windows上,每个
              echo
              生成一个额外的换行符,因此,您无法使用多个
              echo
              s构建单行。基本逻辑正常,但在windows上,每个
              echo
              都会生成一个额外的换行符,因此您无法使用多个
              echo
              s构建单行。基本逻辑正常,但在windows上,每个
              echo
              都会生成一个额外的换行符,因此,您不能用多个
              echo
              s构建一条线。