找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20230|回复: 5

[文本处理] 【已解决】BAT:合并与拆分文本,如何以空行为分割?

[复制链接]
发表于 2023-9-2 07:08:26 | 显示全部楼层 |阅读模式
本帖最后由 思想之翼 于 2023-9-2 10:36 编辑

1.txt记录数据:
AAA AAA
AAA

2.txt记录数据:
BBB BBB BBB
BBB BBB
BBB

3.txt记录数据:
CCC
CCC CCC
CCC CCC CCC

【问题1】:如何合并上述文本,中间以空行隔开?结果123.txt为:
AAA AAA
AAA

BBB BBB BBB
BBB BBB
BBB

CCC
CCC CCC
CCC CCC CCC

【问题2】:如何将上述123.txt,以空行为分隔,拆分成1.txt  2.txt  3.txt,结果为:
1.txt:
AAA AAA
AAA

2.txt:
BBB BBB BBB
BBB BBB
BBB

3.txt:
CCC
CCC CCC
CCC CCC CCC

注:type e:\00\*.txt > e:\00\123.txt 无法加空行

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-9-2 09:57:40 | 显示全部楼层
回复 1# 思想之翼
按楼主提供的样本,如下方式经测试有效
合并

  1. awk -v"RS=" "{print $0,ORS}" 1.txt 2.txt 3.txt>4.txt
复制代码
拆分

  1. awk -v"RS=" "{print $0>NR".txt"}" 4.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢分享,结果正确。

查看全部评分

发表于 2023-9-2 10:06:15 | 显示全部楼层
本帖最后由 77七 于 2023-9-2 11:05 编辑

合并
  1. @echo off
  2. (for /l %%l in (1,1,3) do (
  3.         for /f "useback delims=" %%a in ("%%l.txt") do (
  4.                 echo %%a
  5.         )
  6.         echo=
  7. ))>123.txt
  8. pause
复制代码


拆分
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=1
  4. for /f "tokens=1* delims=:" %%a in ('findstr /n .* "123.txt"') do (
  5.         if "%%b" equ "" (
  6.                 if exist "!n!.txt" (
  7.                         set /a n+=1
  8.                 )
  9.         ) else (
  10.                 >>"!n!.txt" echo %%b
  11.         )
  12. )
  13. endlocal
  14. pause
复制代码
合并2
  1. @echo off
  2. find /v "" *.txt|findstr /irvc:"^-.*\.TXT$"|more /s|more +1>123.txt
  3. pause
复制代码



合并3
  1. @echo off
  2. type *.txt 2>&1|findstr /ivec:".txt"|more /s|more +1>123.txt
  3. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢分享,结果正确。

查看全部评分

发表于 2023-9-6 09:39:24 | 显示全部楼层
回复 3# 77七


    大佬,合并后的文件名如何以文件夹名命名?
发表于 2023-9-6 10:13:57 | 显示全部楼层
回复 4# 877

  1. @echo off
  2. for %%a in (.) do (
  3.         type *.txt 2>&1|findstr /ivec:".txt"|more /s|more +1>"%%~nxa.txt"
  4. )
  5. pause
复制代码
发表于 2023-9-6 10:27:16 | 显示全部楼层
回复 5# 77七
  1. ffmpeg -i 123.mp4 -an -vf select='eq(pict_type\,I)' -vsync 2  -f image2 image-%03d.png
复制代码
大佬,给优化一下这段代码吧!

想弄成点击后先创建以*.mp4为名称的文件夹,然后
提取的png图片也在这个文件夹中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:19 , Processed in 0.018828 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表