![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 03:17 |
共 47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]奇怪了,关于替换文本内容的问题 |
| 可打印版本 885 / 4 |
| 第1楼 lililulula | 发表于 2007-04-25 00:14 |
| 中级用户 发帖 138 积分 302 | |
|
[已结]奇怪了,关于替换文本内容的问题 for /f "tokens=* delims=" %%i in (1.txt) do set n=!%i:ab=12!&&echo !n!>>2.txt
将1.txt中有"ab"的字符替换为"12"然后输出到2.txt中,执行不成功,没搞明白. 昨天这个问题还弄成了,今天大清早过来又冒出来了,奇怪了 [ Last edited by bjsh on 2007-4-24 at 03:22 PM ] |
|
| 第2楼 lxmxn | 发表于 2007-04-25 00:53 |
| 版主 发帖 4,938 积分 11,386 | |
|
To lililulula:
导致你上面的脚本没有成功的主要原因是没有启用变量延迟。 下面的这个脚本基本可以处理你的问题,但是对于特殊符号的处理可能仍然存在一些问题,而且大写的"AB"也会转化成"12". |
|
| 第3楼 bjsh | 发表于 2007-04-25 03:40 |
| 银牌会员 发帖 621 积分 2,000 | |
我想这一句set n=!%i:ab=12!你是想写成set n=!%%i:ab=12!的吧; 但是即便这样也是不对的; 首先 使用!!启用变量延迟需要在开头加setlocal enabledelayedexpansion 其次 利用set来替换变量; 其中的set n=!_:ab=12! 标记_处应该为 已定义的环境变量; 而不能用%%i等变量. |
|
| 第4楼 ansipeter | 发表于 2007-04-25 03:53 |
| 中级用户 发帖 130 积分 269 | |
| 第5楼 lililulula | 发表于 2007-04-25 03:55 |
| 中级用户 发帖 138 积分 302 | |
|
多谢几位的帮助,特别是bjsh斑竹,昨天估计也是我没理解的情况下测试成功的,现已经搞明白了.
[ Last edited by lililulula on 2007-4-24 at 03:10 PM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |