中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何批量读取文本内容生成指定格式文本
作者:
标题: 如何批量读取文本内容生成指定格式文本 上一主题 | 下一主题
kele9988
新手上路





积分 18
发帖 12
注册 2008-9-2
状态 离线
『楼 主』:  如何批量读取文本内容生成指定格式文本

最近弄一个FLASH播放器,读取XML列表并播放音乐视频。手动添加列表太麻烦,想用批处理解决,特来求助。
从网上得到视屏文件的地址列表,保存为1.txt,2.txt,3.txt...n.txt,txt文本内是一个视屏文件的若干分段地址,格式如下:
http://data.vod.itc.cn/tv/20100107/48e8d707-5bec-439d-8e47-15e6197407be.mp4
http://data.vod.itc.cn/tv/20100107/d67804a5-d652-4df3-a801-4887a432c855.mp4
http://data.vod.itc.cn/tv/20100107/110e7947-a753-4593-94d3-4637afcb1b2e.mp4
http://data.vod.itc.cn/tv/20100107/f856cab8-6bd7-4a19-a60c-20b04e07b1cf.mp4
http://data.vod.itc.cn/tv/20100107/6de8e52d-854e-4030-84d1-4392d5d92420.mp4
http://data.vod.itc.cn/tv/20100107/de1bce39-e233-4801-a555-6baa8f3bf10d.mp4
http://data.vod.itc.cn/tv/20100107/f94be865-93a7-4699-938b-33529f1b04df.mp4
http://data.vod.itc.cn/tv/20100107/e6bcd96f-4106-4227-9ecf-c313fa56983c.mp4
http://data.vod.itc.cn/tv/20100107/2d3182a2-12d8-49f6-af73-840947f6fb2e.mp4
http://data.vod.itc.cn/tv/20100107/7f0dc915-da3f-494f-b827-40872867f6fe.mp4


现在想用批处理读取txt内的地址,并生成如下格式文本:
<list>
<m label="神话">
<m type="" src="http://data.vod.itc.cn/tv/20100107/48e8d707-5bec-439d-8e47-15e6197407be.mp4" label="神话 第1集1"/>
<m type="" src="http://data.vod.itc.cn/tv/20100107/d67804a5-d652-4df3-a801-4887a432c855.mp4" label="神话 第1集2"/>
……
<m type="" src="http://data.vod.itc.cn/tv/20100107/7f0dc915-da3f-494f-b827-40872867f6fe.mp4" label="神话 第1集n"/>

<m type="" src="http://data.vod.itc.cn/tv/20100107/48e8d707-5bec-439d-8e47-15e6197407be.mp4" label="神话 第2集1"/>
<m type="" src="http://data.vod.itc.cn/tv/20100107/d67804a5-d652-4df3-a801-4887a432c855.mp4" label="神话 第2集2"/>
……
<m type="" src="http://data.vod.itc.cn/tv/20100107/7f0dc915-da3f-494f-b827-40872867f6fe.mp4" label="神话 第2集n"/>

<m type="" src="http://data.vod.itc.cn/tv/20100107/48e8d707-5bec-439d-8e47-15e6197407be.mp4" label="神话 第n集1"/>
<m type="" src="http://data.vod.itc.cn/tv/20100107/d67804a5-d652-4df3-a801-4887a432c855.mp4" label="神话 第n集2"/>
……
<m type="" src="http://data.vod.itc.cn/tv/20100107/7f0dc915-da3f-494f-b827-40872867f6fe.mp4" label="神话 第n集n"/>
</m>
</list>

其中“神话”是视屏名称,根据当前文件夹名生成,“第n集n”中的第一个“n”根据txt文件名生成,第二个“n”根据txt文本内的地址自动递增生成,第一行为1,第二行为2,第n个位n.


下面拼凑的是读取单一文本生成列表,且只能生成“名称第n集”,不能生成“名称第n集n”.
@echo off
echo ^<list^> >>list.txt
for %%p in ("%cd%") do set m=%%~nxp
echo ^<m label=^"%m%^"^> >>list.txt
for /f %%i in (1.txt) do echo ^<m type=^"^" src=^"%%i^" label=^"%m%第1集^"/^> >>list.txt
echo ^</m^> >>list.txt
echo ^</list^> >>list.txt
start list.txt
exit
[ Last edited by kele9988 on 2010-1-24 at 18:14 ]

2010-1-24 17:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kele9988
新手上路





积分 18
发帖 12
注册 2008-9-2
状态 离线
『第 2 楼』:  

顶起来

2010-1-25 05:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kele9988
新手上路





积分 18
发帖 12
注册 2008-9-2
状态 离线
『第 3 楼』:  

还是没人看啊?

2010-1-25 23:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  


@echo off
>>list.log echo ^<list^>
for %%a in ("%cd%") do (
    set m=%%~nxa
)
>>list.log echo ^<m label=^"%m%^"^>
for /f "delims=" %%a in ('dir /b *.txt') do (
    setlocal enabledelayedexpansion
    set num=0
    for /f %%i in (%%a) do (
        set /a num+=1
        >>list.log echo ^<m type=^"^" src=^"%%i^" label=^"%m%第%%~na集!num!^"/^>
    )
    endlocal
)
>>list.log echo ^</m^>
>>list.log echo ^</list^>




2010-1-26 06:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kele9988
新手上路





积分 18
发帖 12
注册 2008-9-2
状态 离线
『第 5 楼』:  

多谢版主,问题解决!

2010-1-29 10:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kele9988
新手上路





积分 18
发帖 12
注册 2008-9-2
状态 离线
『第 6 楼』:  

刚才试了下,还有个问题,一个电视剧超过10集时,也就是文件名大于10的情况,生成的列表离排列顺序有问题,是按文件名第一位数排列的,即1X以后的文件排到1后面了,而不是正常的第2集。不知道能解决不?

2010-1-29 11:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moonbeam
新手上路





积分 5
发帖 4
注册 2005-12-9
状态 离线
『第 7 楼』:  

命名文件名的时候1-9前面都补0即可,如01-09,如果超过100集,则001-099

2010-1-29 14:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: