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

[文件操作] [已解决]批处理怎样读取txt某行某字段,改名写入XML?

本帖最后由 meteormiao 于 2011-4-12 16:42 编辑

有个文件a.txt
需要读取它里面第二行“萨鲁发骄傲了9月10日14时说的”中的月日时的时间,
然后将文件名改为"tp年月日时.txt"(其中年4位,其他2位),并移动到b目录下
同时写入c.xml文件,格式如下:
<?xml version="1.0" encoding="utf-8" ?>
- <files>
<file year="2011" month="3" day="25" name="想来就来是" url="http://10.10.10.10/tp年月日.txt" />
</files>
之后每来新的txt文件,就在这个xml文件基础上进行file增项,逆序排列,最新项写在最上面。(其中年,月,日,文件名这四项是需要变动的)

小弟刚开始学批处理,论坛精华也看了一些,写了几段,但就是拼不出个能用的,无奈求助,请各位朋友能帮一把,谢谢了~~~14
1

评分人数

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

本帖最后由 meteormiao 于 2011-4-6 14:19 编辑

感谢版主提醒,发现了几处提问的小问题,现修改并回答如下:
1.每个文件第二行都有“XX月XX日XX时”(问题里写错了,没有年,例如:北京市交通台11月29日15时56分发布),统一是这个格式。
2.文件名需要改为“tpXXXXXXXXXX.TXT“(年4位,月日时各两位,不需要分)。
3.<file year="2011" month="3" day="25" name="想来就来是" url="http://10.10.10.10/tp年月日时.txt" />
中,变动的部分有:(1)year="年"
                           (2)monte="月"
                           (3)day="日"
                           (4)tp年月日时.txt
回答完毕
就是感觉问题有点复杂,反而无从下手了

TOP

版主真是句句文在点上,汗颜啊。
1.年份取当前日期的。
2.文件中出现的时间是只保留整数位的,比如:3月2日8时,但转换文件名时,不足需进行补0操作,也就是文件名变为“tp2011030208.txt。
3.在XML中,month和day也是只保留整数位,不进行补零操作。

TOP

有一个小瑕疵
move "%e%" "%b%\tp%date:~0,4%%a_:~-2%%b_:~-2%%c_:~-2%.txt"
中的%b%改为%h%就OK了。
非常感谢版主,我从这个案例中学到了很多,再次感谢~~~

TOP

实际运行中有一个问题,就是这个批处理并未对文件是否存在做判断,我每运行一次这个它就会执行一次写操作,如果目录下没有a.txt文件,也会在xml中写入一条空信息。。。
如果在变量赋值后,加入一个判断
if not exist a.txt goto:eof
这个程序就更好了,呵呵

TOP

返回列表