![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 11:01 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于批量文本替换的疑问?(处理子目录会出错) |
| 可打印版本 946 / 9 |
| 第1楼 cnxyc | 发表于 2008-11-10 17:46 |
| 新手上路 发帖 15 积分 15 | |
|
关于批量文本替换的疑问?(处理子目录会出错) 高手请看看这段文本替换的代码:
@echo off :begin echo 目录: set/p ulr="" if exist "%ulr%" goto tihuan cls&echo 输入错误!&goto begin :tihuan for /r "%ulr%" %%i in (*.txt) do ( for /f "delims=" %%a in (%%~si) do ( set a=%%a setlocal enabledelayedexpansion set b=!a:张三,“李四”王老五=张三/李四:王老五! set c=!b:~今天天气真好~=阳光明媚! echo.!c!>>"%%~dpni"已替换.txt endlocal ) ) pause 这段代码可以正确处理输入路径的根目录下的文件,但是在处理子目录的时候会出错,有时候是重复替换(如替换后会出现两个王老五),有时候会在替换后的内容后附加文件所在路径。 希望各位高手能解决这个问题,可以在这段代码基础上修改,也可以换个思路重新写代码。谢谢!!! |
|
| 第2楼 cnxyc | 发表于 2008-11-11 10:30 |
| 新手上路 发帖 15 积分 15 | |
|
怎么没人回答我啊 怎么没人回答我啊,自己顶起来
|
|
| 第3楼 tireless | 发表于 2008-11-11 10:39 |
| 银牌会员 发帖 1,122 积分 2,025 | |
set c=!b:~今天天气真好~=阳光明媚! ~ 符号能替换成功?! |
|
| 第4楼 cnxyc | 发表于 2008-11-11 10:40 |
| 新手上路 发帖 15 积分 15 | |
|
可以的啊,我试过的 可以的啊,我试过的,符号能替换
|
|
| 第5楼 tireless | 发表于 2008-11-11 12:06 |
| 银牌会员 发帖 1,122 积分 2,025 | |
Originally posted by cnxyc at 2008-11-11 10:40 AM: 不行,绝对不行 >_< |
|
| 第6楼 tireless | 发表于 2008-11-11 12:11 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
而且我用 1 楼的代码测试,会陷入循环,一共生成 82 个新文件:
1.txt 1已替换.txt 1已替换已替换.txt 1已替换已替换已替换.txt 1已替换已替换已替换已替换.txt 1已替换已替换已替换已替换已替换.txt 1已替换已替换已替换已替换已替换已替换.txt 1已替换已替换已替换已替换已替换已替换已替换.txt 1已替换已替换已替换已替换已替换已替换已替换已替换.txt 1已替换已替换已替换已替换已替换已替换已替换已替换已替换.txt ... ... 最后一个是: 1已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换已替换.txt [ Last edited by tireless on 2008-11-11 at 12:27 ] |
|
| 第7楼 不得不爱 | 发表于 2008-11-11 12:17 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
我试了下1楼的代码,会把所有文件的内容全换成 b:~今天天气真好~=阳光明媚
无法实现替换 |
|
| 第8楼 tireless | 发表于 2008-11-11 12:23 |
| 银牌会员 发帖 1,122 积分 2,025 | |
Originally posted by 不得不爱 at 2008-11-11 12:17 PM: 就是嘛。不会出现 6 楼说的循环? |
|
| 第9楼 cnxyc | 发表于 2008-11-12 17:48 |
| 新手上路 发帖 15 积分 15 | |
|
????? 确实是的,是我不够仔细。那实现这个功能应该如何写呢?望指教!!!
|
|
| 第10楼 langzi900 | 发表于 2008-11-12 22:59 |
| 新手上路 发帖 8 积分 8 | |
|
学习一下哈哈
好东西 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |