![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 21:12 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理中如何替换文本中的<和>字符 |
| 可打印版本 4,563 / 12 |
| 第1楼 btandd | 发表于 2006-11-24 00:06 |
| 新手上路 发帖 5 积分 14 | |
|
批处理中如何替换文本中的<和>字符 代码如下replace.bat:
@echo off setlocal enabledelayedexpansion set /a a=1 for %%x in (*.xml) do ( for /f "tokens=*" %%i in (%%x) do ( set "var=%%i" if not !var!.==. ( set "var=!var:%1=%2!" echo !var!!>>!a!.xml ) ) set /a a=!a!+1 ) 该文件是要替换所有xml文件中的某个字符串为另一个,它带有两个命令行参数,%1为被替换的字符串,%2是替换为的字符串,但是如果字符串中包含<,>,\等特殊意义的字符,就不成了,请教解决方案,谢谢! |
|
| 第2楼 NaturalJ0 | 发表于 2006-11-24 00:51 |
| 银牌会员 发帖 533 积分 1,181 | |
|
%var:^<=% 应该可以
|
|
| 第3楼 btandd | 发表于 2006-11-24 07:06 |
| 新手上路 发帖 5 积分 14 | |
Originally posted by NaturalJ0 at 2006-11-23 11:51 AM: 不行哦,比如我这样调用上面的脚本:replace <Wait Value="300"/> <Wait Value="100"/> 还是不能正确处理<>. |
|
| 第4楼 不得不爱 | 发表于 2006-11-24 07:31 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
那就可能不好办了
|
|
| 第5楼 tao0610 | 发表于 2006-11-24 13:49 |
| 高级用户 发帖 218 积分 579 | |
|
>,<,^好像在批处理里替换都会有问题。
|
|
| 第6楼 zh159 | 发表于 2006-11-24 14:08 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
echo "%N%"
set "N=%N:<=%" set "N=%N:>=%" 好像""内的<>都不用^就可以正常输出,不用""就要^ |
|
| 第7楼 NaturalJ0 | 发表于 2006-11-24 21:50 |
| 银牌会员 发帖 533 积分 1,181 | |
| 第8楼 ccwan | 发表于 2006-11-24 22:16 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
不错!
|
|
| 第9楼 不得不爱 | 发表于 2006-11-24 22:59 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
楼上几位好像没有看3楼的帖子吧
|
|
| 第10楼 vkill | 发表于 2006-11-25 00:03 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
替换我更喜欢用sed
|
|
| 第11楼 NaturalJ0 | 发表于 2006-11-25 00:12 |
| 银牌会员 发帖 533 积分 1,181 | |
|
replace <Wait Value="300"/> <Wait Value="100"/>
这句调用 里面的 <> 是重定向的作用 加上^可以解决 但你要替换的字符串中含有空格 前后要加" 可字符串中还有" 所以。。。你还是用 sed 吧 |
|
| 第12楼 tao0610 | 发表于 2006-11-25 03:30 |
| 高级用户 发帖 218 积分 579 | |
这个变量var是种特殊情况,关键起作用的还是"" 变量延迟和^可以不需要,直接替换就可以! 而3楼的例子反而是这种特殊的有""的变量出现时会有错误! 看来替换时还要判断一下。。 |
|
| 第13楼 zh159 | 发表于 2006-11-25 04:02 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
3楼的帖子是不是要把“<Wait Value="300"/>”替换为“<Wait Value="100"/>”??
如果是,那就: |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |