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

[文本处理] [已解决]批处理处理不同的换行符文本文件的问题

[复制链接]
发表于 2025-8-26 16:35:44 | 显示全部楼层 |阅读模式
本帖最后由 HalloWord 于 2025-8-27 14:07 编辑

要处理一批文本文件,但是这些文件来自不同系统,文本文件中的换行符不统一。
用批处理处理时,CR换行符不认识变成只有1行了,而LF换行符的处理完后用echo输出后变成了CRLF换行符。
请问批处理有没有什么好方法可以处理CR换行符的文本文件和保持原来的换行符?
========超华丽的分割线========
不用bat,换用其他的了
发表于 2025-8-26 18:04:05 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-8-26 20:56 编辑

回复 1# HalloWord

   假设采用不同换行符(\r\n, \n, \r)的文本文件如 rn.txt, n.txt, r.txt 均为简中编码,用以下代码可在默认936码页的cmd窗口中正常屏显文件内容。其实 linux 系统换行符 \n 亦可被正常显示(如直接用 type n.txt),只是 mac 系统换行符 \r 需要特别处理 ...
   将以下代码存为 test.bat,与要处理的文本文件同目录,命令行用法》
   test.bat rn.txt
   test.bat n.txt
   test.bat r.txt

  1. 2>1/* ::
  2. @echo off &if "%~1"=="" (exit/b)
  3. for /f "delims=" %%a in ('cscript /nologo /e:jscript "%~f0" "%~1" ') do echo,%%a
  4. pause&exit/b */
  5. v=WSH.arguments, fso=WSH.createObject('Scripting.FileSystemObject');
  6. fp=fso.opentextfile(v(0),1), all=fp.readall().replace(/[\r\n]+/g, '\r\n'), fp.close();
  7. WSH.echo(all), WSH.quit();
复制代码

评分

参与人数 1技术 +1 收起 理由
HalloWord + 1 感谢!

查看全部评分

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

本版积分规则

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

GMT+8, 2026-3-17 07:06 , Processed in 0.023278 second(s), 12 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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