返回列表 发帖

[文本处理] [已解决]BAT批处理如何把文本每两行合并成一行?

想让批处理实现txt文本处理,举例在附件中 麻烦高手帮忙写给批处理 谢谢
XP系统
一.txt文本内容 经过批处理处理后  变成二.txt文本内容格式 把处理结果导出到 二.txt文本中

118236039954793 446169323
118236039954795 469349980
118236039954797 733730203
118236039954799 416669585
118236039954801 870682049
118236039954803 265021929
118236039954805 645417838
118236039954787 865587970
118236039954819 224340819
118236039954821 552145002
以上是一.txt文本内容
以下经过批处理处理后
二.txt文本内容
118236039954793 446169323        118236039954795 469349980
118236039954797 733730203        118236039954799 416669585
118236039954801 870682049        118236039954803 265021929
118236039954805 645417838        118236039954787 865587970
118236039954819 224340819        118236039954821 552145002
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

把多行文本拼接成用连接的一行 ,楼主可以参考如下代码。
方法1  :
@echo off
:: 把多行文本拼接成用;连接的一行
:: <nul 不能省略,省略掉就无法运行下去
for /f "tokens=*" %%i in (源文件.txt) do set /p "var=%%i;" <nul >>目标文件.txt
exit

方法2  :
set tmpstr=
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in (1.txt) do set tmpstr=!tmpstr! %%i
echo %tmpstr%
pause
exit

方法3  :
还有一种不启用变量延迟的方法,能兼容除英文双引号外的所有特殊字符:
@echo off
:: code by jm 2006-12-14
for /f "delims=" %%i in (1.txt) do call set "var=%%var%%%%i"
echo "%var%"
pause
2

评分人数

TOP

gawk "{printf (NR%2)?$0 :$0\"\n\"}" a.txt > b.txtCOPY
2

评分人数

TOP

sed "$!N;s/\n/ /" a.txt > b.txtCOPY
1

评分人数

TOP

回复 1# pengyou86
@echo off
for /f "delims=U" %%i in ('cmd /u /c echo 唉') do set "tab=%%i"
setlocal enabledelayedexpansion
(for /f "delims=" %%i in (处理前.txt) do (
    if defined str (
       echo,!str!%tab%%%i&set "str="
    ) else set "str=%%i"
)
    if defined str echo !str!
)>处理后.txt
pauseCOPY
2

评分人数

TOP

@echo off
%1 cmd /v /c %0 :
(for /f "delims=" %%a in (一.txt) do (
   set /a "1/(n=^!n)"||echo !str!    %%a
   set "str=%%a"
))>二.txt 2>nul
pauseCOPY
1

评分人数

TOP

谢谢各位老大,但我测试你们的批处理没有一个能使用的。提示图片中这种情况。
我电脑是XP系统

TOP

回复 7# pengyou86


    用记事本打开bat,文件,另存为,看看编码是不是ANSI

TOP

回复 8# DAIC


    是ANSI 格式的

TOP

回复 9# pengyou86


    txt文件也是ANSI编码吗?

TOP

回复 10# DAIC

是的txt文本也是ANSI

TOP

回复 10# DAIC

TOP

7楼那个截图是测试的哪个代码?

TOP

回复 13# DAIC


    @echo off
for /f "delims=U" %%i in ('cmd /u /c echo 唉') do set "tab=%%i"
setlocal enabledelayedexpansion
(for /f "delims=" %%i in (a.txt) do (
    if defined str (
       echo,!str!%tab%%%i&set "str="
    ) else set "str=%%i"
)
    if defined str echo !str!
)>处理后.txt
pause

TOP

回复 7# pengyou86


    本机测试无误,你存的 bat 是 ansi 吗?看错误提示截图,感觉应该是存成 utf-8 了

TOP

返回列表