找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23207|回复: 3

[文本处理] BAT脚本处理xml文件中时为何丢失空行?

[复制链接]
发表于 2012-7-2 14:44:00 | 显示全部楼层 |阅读模式
在处理一组xml 文件,非ANSI 和 UTF-8 格式的(Notepad++显示编码是UCS-2 Little Endian) , xml 片段在 附件里,想要逐行读取这个文件进行处理, 使用 findstr 无法处理附件的文件(之前的笨办法是 type 1.xml>>temp.xml  这样文件会被转码为 ANSI ,findstr 就可以进行处理了,但是会多一个临时文件), 后来想到用for + type

代码如下,但是现在的问题是,xml 源文件中的 空格,在代码里无法处理, 表示很困惑, (type 1.xml >> temp.xml 是可以列出所有空行的,但是在for里一处理,不知道为啥就不行了)

  1. @echo off
  2. set "file=1.xml"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('type %file%') do (
  5.         echo.%%i >>2.xml
  6.         set /a next+=1
  7.         )
  8. echo !next!
  9. pause
复制代码
-----------------------------------

不知道为啥附件xml上传不上来.... 贴出来吧
  1. <?xml version="1.0" encoding="UTF-16" ?>
  2. <?xml-stylesheet type="text/xsl" href="D&P.xslt" ?>
  3. <WTT-Logger>

  4. <TRRollup
  5.         Total="8"

  6.         Passed="6"
  7.         Failed="0"
  8.         Blocked="0"
  9.         Warned="0"

  10.         Skipped="2" CA="dsadsadsa1" LA="sdasdsadsa1" >
  11.         <rti id="sdadsadsa" />
  12.         <ctx id="dsadsadsa" />
  13. </TRRollup>
复制代码
发表于 2012-7-2 16:21:05 | 显示全部楼层
试试findstr  /n
  1. @echo off
  2. set "file=1.xml"
  3. setlocal enabledelayedexpansion
  4. for /f "tokens=1,2 delims=:" %%i in ('type %file%^|findstr /n .*') do (
  5.   echo.%%j
  6.   set /a next+=1
  7. )
  8. echo !next!
  9. pause
复制代码
发表于 2012-7-2 23:52:24 | 显示全部楼层
回复 1# foxli180


    把xml文件压缩一下就能传上来了
 楼主| 发表于 2012-7-3 10:28:24 | 显示全部楼层
回复 2# apang

可以了!! 非常感谢, 没想到 | 在这里要转意!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 06:15 , Processed in 0.018069 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表