Batch file 批处理-合并两行并添加逗号以将txt格式重新格式化为csv格式
我有一些格式化文本,如下所示: 5Batch 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。我只是被困在如何批量组合生产线的问题上 我意识到这有点类似,但
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构建一条线。