[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

搜索了下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. |
复制代码
光标在时间行的下面那行
1

评分人数

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

本帖最后由 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

评分人数

TOP

既然你看到了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

评分人数

TOP

2楼具有通用性,能够判断是不是空行,不用担心出错。
3楼直接,如果在知道文本没有空行的情况下,echo,>>1.txt,直接插入空行也很简洁。
谢谢大家!

TOP

返回列表