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

[文本处理] [已解决]批处理如何修改文本中内容?

[复制链接]
发表于 2011-11-1 14:25:32 | 显示全部楼层
回复 15# pdp320921


你觉得没有?
 楼主| 发表于 2011-11-1 14:28:28 | 显示全部楼层
回复 16# Batcher


    我不知道啊,还不知对于我的问题还没解决方法?
 楼主| 发表于 2011-11-1 15:34:18 | 显示全部楼层
回复 16# Batcher


    发现一个问题:

当xml是以ANSI编码时无法实现修改文本内容
当xml是以Unicode编码时可以实现修改文本内容

不过如何能通过批处理实现xml文件以Unicode编码?
发表于 2011-11-1 16:32:16 | 显示全部楼层
回复 18# pdp320921


你先试试9楼那个type的方法,然后说说具体哪里不行。
 楼主| 发表于 2011-11-1 16:52:18 | 显示全部楼层
回复 19# Batcher


    试了,可以输出b.txt但是 没能实现替代仍然是原来值
发表于 2011-11-1 19:00:37 | 显示全部楼层
回复 11# CrLf
多谢指教,意思就是说预处理中特殊字符的处理晚于%a%,早于%%a和!a!以及set/a?
因为如下会生成test.txt:

  1. set "test=>test.txt"
  2. echo,%test%
复制代码
而以下两种情况都只会显示“>test.txt”:

  1. for %%a in (">test.txt") do echo,%%~a
复制代码

  1. setlocalenabledelayedexpansion
  2. set "test=>test.txt"
  3. echo,!test!
复制代码
原来netbenton前辈曾发帖讨论过预处理时变量的替换优先级,%1>%a%>%%a>!a!>set/a,看来这个特殊字符的处理插入到它们之中了。
发表于 2011-11-1 19:04:39 | 显示全部楼层
这类问题LZ为什么不用AWK的方法呢?个人认为还是SED方便,只不过要下载(但是完全值得)

评分

参与人数 1PB +3 收起 理由
CrLf + 3 乐于助人

查看全部评分

 楼主| 发表于 2011-11-1 19:39:11 | 显示全部楼层
回复 9# awk

还是无法实现替换,真够蛋疼的我
发表于 2011-11-1 22:08:53 | 显示全部楼层
回复 23# pdp320921


把你的xml文件压缩一下传上来,我试试。
 楼主| 发表于 2011-11-2 08:06:58 | 显示全部楼层
回复 24# awk


请帮忙再看看,感激!
发表于 2011-11-2 10:00:36 | 显示全部楼层
回复 25# pdp320921


你的xml文件每行结尾不是普通的CRLF,全部是CRCRLF。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('type a.xml') do (
  4.     set str=%%i
  5.     set str=!str:~0,-1!
  6.     if "!str!" equ "    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>" (
  7.         echo     ^<DisallowStartIfOnBatteries^>false^</DisallowStartIfOnBatteries^>
  8.     ) else if "!str!" equ "    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>" (
  9.         echo     ^<StopIfGoingOnBatteries^>false^</StopIfGoingOnBatteries^>
  10.     ) else (
  11.         echo !str!
  12.     )
  13. ))>b.xml
复制代码

评分

参与人数 2技术 +2 收起 理由
CrLf + 1 牛逼,你太细心了...
pdp320921 + 1 厉害,这都看得出来!

查看全部评分

 楼主| 发表于 2011-11-2 10:48:56 | 显示全部楼层
回复 26# awk


    非常感谢!
不过还有点小问题
就是结尾</Task> 丢了>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 06:56 , Processed in 0.020992 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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