如何运用DOS批处理对文本内容进行分行?
请教各位DOS批处理高手,我有一个TXT文本文件,文字没有分段,全部是连在一起的,内容的格式大致如下<Ref>R1001</Ref><Package>R0402<Pack...
请教各位DOS批处理高手,我有一个TXT文本文件,文字没有分段,全部是连在一起的,内容的格式大致如下<Ref>R1001</Ref><Package>R0402<Package><Ref>R1002</Ref><Package>R0603<Package><Ref>R1003</Ref><Package>R0805<Package><Ref>R1004</Ref><Package>R1206<Package>
希望只用批处理的方式,对内容按照一定的方法分行显示,最终效果如下面三种当中的任何一种都可以,望高手指点,不胜感谢!
效果一:
<Ref>R1001</Ref><Package>R0402<Package>
<Ref>R1002</Ref><Package>R0603<Package>
<Ref>R1003</Ref><Package>R0805<Package>
<Ref>R1004</Ref><Package>R1206<Package>
效果二:
<Ref>R1001</Ref>
<Package>R0402<Package>
<Ref>R1002</Ref>
<Package>R0603<Package>
<Ref>R1003</Ref>
<Package>R0805<Package>
<Ref>R1004</Ref>
<Package>R1206<Package>
效果三:
<Ref>
R1001
</Ref>
<Package>
R0402
<Package>
<Ref>
R1002
</Ref>
<Package>
R0603
<Package>
<Ref>
R1003
</Ref>
<Package>
R0805
<Package>
<Ref>
R1004
</Ref>
<Package>
R1206
<Package> 展开
希望只用批处理的方式,对内容按照一定的方法分行显示,最终效果如下面三种当中的任何一种都可以,望高手指点,不胜感谢!
效果一:
<Ref>R1001</Ref><Package>R0402<Package>
<Ref>R1002</Ref><Package>R0603<Package>
<Ref>R1003</Ref><Package>R0805<Package>
<Ref>R1004</Ref><Package>R1206<Package>
效果二:
<Ref>R1001</Ref>
<Package>R0402<Package>
<Ref>R1002</Ref>
<Package>R0603<Package>
<Ref>R1003</Ref>
<Package>R0805<Package>
<Ref>R1004</Ref>
<Package>R1206<Package>
效果三:
<Ref>
R1001
</Ref>
<Package>
R0402
<Package>
<Ref>
R1002
</Ref>
<Package>
R0603
<Package>
<Ref>
R1003
</Ref>
<Package>
R0805
<Package>
<Ref>
R1004
</Ref>
<Package>
R1206
<Package> 展开
3个回答
2012-05-03
展开全部
效果二:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (in.txt) do set "all=%%i
set all=!all:^>^<=^>`^<!
:loop
for /f "tokens=1* delims=`" %%i in ("!all!") do (
>>out.txt echo,%%i
set "all=%%j")
if not "!all!"=="" goto :loop
(注:由于命令提示符的限制,可以处理的字符串长度为8191个字符。http://support.microsoft.com/kb/830473)
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (in.txt) do set "all=%%i
set all=!all:^>^<=^>`^<!
:loop
for /f "tokens=1* delims=`" %%i in ("!all!") do (
>>out.txt echo,%%i
set "all=%%j")
if not "!all!"=="" goto :loop
(注:由于命令提示符的限制,可以处理的字符串长度为8191个字符。http://support.microsoft.com/kb/830473)
更多追问追答
追问
我的文本原始内容是下面的,开始提问时的只是大致的格式
167.60020.014164.333
其实我的目的就是想在 >< 为标志,强制回车。望高手深入指点。
追答
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (in.txt) do (
set "all=%%i
set all=!all:^>^`^>out.txt echo,%%i
set "all=%%j")
if not "!all!"=="" goto :loop
goto :eof
展开全部
你也说到了只有一个txt文本,你可以用一个好点的文本编辑器,然後将><替换成>换行<就行了,例如你用emeditor,那就是在将
><
替换成
>\n<
这样就搞定了。
><
替换成
>\n<
这样就搞定了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用批处理的话,好难。
建议使用编辑软件如 UltraEDIT 等,录制一个宏,然后运行宏即可快捷完成
建议使用编辑软件如 UltraEDIT 等,录制一个宏,然后运行宏即可快捷完成
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询