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

回复 15# lzyecho
大概就7楼那位的解释。
获取换行符号需要转义,所以用^加两空行来定义,你记住这写法就行了。

第一个FOR语句是为了替换你文本中的&#符号为换行符,(不过这里要注意,虽然实际上已经替换了,但是直接输出的话还是一行,所以写入到临时文件tmp)

因为你源文本中一行可能包含多组&#符号,所以在每一行替换后,多输出一行##来区分,否则写入到TMP后你看不出你源文档哪行是哪行的。

第二个for,(这里写法也可用set直接把;之前替空),然后用##这个标志来区别临时文档TMP中的哪些行需要拼接成源文本的一行(意思就是碰到##,则之前的内容全输出为一行)

至于两个echo,则因为,一个用来对set/p 换行,一个是你源文件每行之间有空一行。

你要看清楚,则删除第15行代码del tmp  ,然后运行一遍后打开tmp这个文件对照看下就懂了。
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 16# xxpinqz


    这就明白了,得多看,多揣摩体会。再谢xxpinqz的更细致解说。

TOP

返回列表