标题: [文本处理] [已解决]批处理如何生成不是CRLF而是只以LF(换行符)结尾的文件? [打印本页]
作者: iiiiiiiiii 时间: 2012-11-20 02:29 标题: [已解决]批处理如何生成不是CRLF而是只以LF(换行符)结尾的文件?
本帖最后由 iiiiiiiiii 于 2012-11-20 22:46 编辑
例如我需要批处理生成一个内容如下的文件(16进制模式):复制代码
其中0A就是LF(换行符),23 21 41对应为#!A。
我目前就知道的代码是复制代码
生成的文件结果(16进制模式):复制代码
如何才能让生成的文件中不包含0D(回车符)呢?在不使用第三方命令行程序的情况下。
初来乍到,请多指教!
作者: tmplinshi 时间: 2012-11-20 02:55
本帖最后由 tmplinshi 于 2012-11-20 03:11 编辑
- @echo off
-
- :: -------------------------------------
- <nul >1.txt set /p =#!A^
-
-
- :: -------------------------------------
-
- pause
复制代码
在论坛中搜索 换行符,可以找到很多讨论这个的帖子.
作者: iiiiiiiiii 时间: 2012-11-20 22:33
多谢指点,可是放到for语句中应该如何变化呢?- @echo off
- setlocal enabledelayedexpansion
- if exist namelist.txt del namelist.txt
- for /f "delims=." %%n in ('dir *.jpg /a-d /b') do echo %%n >>namelist.txt
- for /f %%p in (namelist.txt) do (
- <nul >%%p.bmp set /p=#!A^
- )
- pause
复制代码
我这样会造成!丢失,生成的文件如下- 00000000h:23 41 20 20 20 20
复制代码
如果删除set /p=#!A^后面的空格,则不会生成文件。
作者: tmplinshi 时间: 2012-11-20 22:38
回复 3# iiiiiiiiii - @echo off
- setlocal enabledelayedexpansion
- :: ------------------------
- set \n=^
-
-
- :: ------------------------
-
- if exist namelist.txt del namelist.txt
- for /f "delims=." %%n in ('dir *.jpg /a-d /b') do echo %%n >>namelist.txt
- for /f %%p in (namelist.txt) do (
- <nul >%%p.bmp set /p=#^^!A!\n!
- )
- pause
复制代码
作者: iiiiiiiiii 时间: 2012-11-20 22:44
OK了,谢谢!
学习中……
作者: iiiiiiiiii 时间: 2012-11-20 23:03
我还有最后一个问题不太明白,为什么复制代码
后面一定要跟两个空行才能得到正常结果呢?
作者: tmplinshi 时间: 2012-11-20 23:18
回复 6# iiiiiiiiii
我也不是很理解。跟转义有关。^ 是一个转义符。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |