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

[文本处理] [已解决]批处理能不能加入换行符?

[复制链接]
发表于 2011-7-21 12:41:28 | 显示全部楼层 |阅读模式
搜索了下sed可以,想用批处理直接点。
1.txt如下
  1. 内容A
  2. 内容B
  3. 内容C|
复制代码
文本结束的光标在C后面,
我在末尾插入时间,需要把光标换行,请问如何修改?
echo %date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2% %ip1%>>1.txt

这个错误代码结果是
  1. 内容A
  2. 内容B
  3. 内容C07-21 12:41
  4. |
复制代码
需求的结果应该是
  1. 内容A
  2. 内容B
  3. 内容C
  4. 07-21 12:41
  5. |
复制代码
光标在时间行的下面那行

评分

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

查看全部评分

发表于 2011-7-21 12:50:34 | 显示全部楼层
本帖最后由 CrLf 于 2011-7-21 12:58 编辑

more 命令会自动补足缺失的换行,但是有三个限制:1,在循环中耗时比重大;2,more 命令读取超大文本时有可能读不尽;3,more命令会自动为单个的换行符配上回车,同时所有nul字符都会被转换成断行
  1. (
  2. more 1.txt
  3. echo %date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2% %ip1%
  4. )>2.txt
复制代码
另一种更通用的方法,用find命令补足缺失的换行:
  1. (
  2. find /v ""<1.txt
  3. echo %date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2% %ip1%
  4. )>2.txt
复制代码
也可以通过findstr判断文本是否存在不含换行符的行,若存在则单独输出一个空行:
  1. (
  2. type 1.txt
  3. findstr /v $ 1.txt>nul||echo;
  4. echo %date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2% %ip1%
  5. )>2.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
tmplinshi + 1 乐于助人

查看全部评分

发表于 2011-7-21 15:07:45 | 显示全部楼层
既然你看到了echo会换行,那么先追加一个空行不就OK了:
  1. echo,>>1.txt
  2. echo %date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2% %ip1%>>1.txt
复制代码
或者
  1. echo ^

  2. %date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2% %ip1%>>1.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
tmplinshi + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-7-21 18:22:44 | 显示全部楼层
2楼具有通用性,能够判断是不是空行,不用担心出错。
3楼直接,如果在知道文本没有空行的情况下,echo,>>1.txt,直接插入空行也很简洁。
谢谢大家!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 00:34 , Processed in 0.020416 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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