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

[文本处理] 批处理如何合并txt文本里以空行分割的每一段文字?

[复制链接]
发表于 2011-11-22 15:44:06 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-9-24 13:29 编辑

例如1.txt上有如下文字:
花厅

我来看过
你,
可是你
不在家里,回来联系我!!
小明。

人物

要求结果为如下输出至2.txt
花厅

我来看过你,可是你不在家里,回来联系我!!小明。

人物

请高手赐教,谢谢!!
发表于 2011-11-22 16:22:49 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,2 delims=:" %%i in ('findstr /n ".*" 1.txt') do (set  _%%i=%%j
  3. if "!_%%i!"=="" set _%%i=$
  4. set   str=!str!!_%%i!
  5. set str=!str: =!
  6. )
  7. set str=!str:$= !
  8. for %%i in (!str!) do (
  9. echo %%i
  10. echo.
  11. )
  12. pause
复制代码
 楼主| 发表于 2011-11-22 16:50:32 | 显示全部楼层
545810831 发表于 2011-11-22 16:22


师傅,你这代码没有输出呢?
发表于 2011-11-22 18:01:52 | 显示全部楼层
加上重定向符就可以了
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,2 delims=:" %%i in ('findstr /n ".*" 1.txt') do (set  _%%i=%%j
  3. if "!_%%i!"=="" set _%%i=$
  4. set   str=!str!!_%%i!
  5. set str=!str: =!
  6. )
  7. set str=!str:$= !
  8. for %%i in (!str!) do (
  9. echo %%i
  10. echo.
  11. )>>2.txt
  12. pause
复制代码
发表于 2011-11-22 22:05:41 | 显示全部楼层
  1. sed ":a;$!N;s/\n\(..*\)/\1/;ta;P;D" a.txt >b.txt
复制代码
发表于 2011-11-23 09:34:41 | 显示全部楼层

  1. @set @n=0//&cscript.exe -e:jscript "%~f0"&exit /b

  2. file = "1.txt";
  3. out = "2.txt";

  4. fso = new ActiveXObject("Scripting.FileSystemObject");
  5. s = fso.OpenTextFile(file).ReadAll();
  6. s = s.replace(/(.)\r\n(?!\r\n)/g, '$1');
  7. fso.OpenTextFile(out, 2, true).writeLine(s);
复制代码

评分

参与人数 1PB +5 技术 +1 收起 理由
zqz0012005 + 5 + 1 谁说没人用JS?

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 00:40 , Processed in 0.030691 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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