![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 20:32 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]如何替换文本内容 |
| 可打印版本 1,504 / 10 |
| 第1楼 gundam525 | 发表于 2007-11-27 19:24 |
| 初级用户 发帖 8 积分 23 | |
|
[求助]如何替换文本内容 恕小弟愚钝,在论坛里没有发现相关帖子。
问题如下: 我有3个ini文件,里面内容是英文字符和符号。但有空行,空格。 我想把这3个文件中的"ok,you find me"替换成 "finish" 如何做啊?实在是急着找答案,往各位仁兄仁姐仁版主帮帮小弟~ 拜谢先 |
|
| 第2楼 lxmxn | 发表于 2007-11-27 19:29 |
| 版主 发帖 4,938 积分 11,386 | |
|
没怎么测试....有问题跟贴讨论。 |
|
| 第3楼 gundam525 | 发表于 2007-11-27 19:52 |
| 初级用户 发帖 8 积分 23 | |
|
在此,先谢谢lxmxn版主
替换是替换了,但是结果有点让人意外。 我把东西发上来吧。 1.源文件没有变化,倒是自动生成了新文件,而且格式和原来的不一样了。 把必须保留的空行删除掉了。 |
|
| 第4楼 gundam525 | 发表于 2007-11-27 19:58 |
| 初级用户 发帖 8 积分 23 | |
|
传不上来啊,我把测试的ini文件内容发上来吧
文件名1.ini 2.ini 其中,1.ini中的内容为: ok,you find me 1111111 ok,you find me ok,you find me 11111111 ok,you find me ok,you find me 2.ini中的内容为: ok,you find me 22222 ok,you find me ok,you find me ok,you find me 22222 ok,you find me 使用该命令后,新生成了3个文件-_-||| new_1.ini new_2.ini new_new_1.ini 其中 new_1.ini中的内容为: finish 1111111 finish finish 11111111 finish finish new_2.ini中的内容为: finish 22222 finish finish finish 22222 finish |
|
| 第5楼 upsco | 发表于 2007-11-27 20:13 |
| 初级用户 发帖 32 积分 67 | |
|
要保留空行,可以这样试试:
|
|
| 第6楼 terse | 发表于 2007-11-27 23:47 |
| 银牌会员 发帖 946 积分 2,404 | |
|
这样可以了
|
|
| 第7楼 wubozh | 发表于 2007-11-29 21:17 |
| 初级用户 发帖 18 积分 40 | |
|
set string=%%b
set string=!string:ok,you find me=finish! 看不懂这两句。不知道这里的string是不是一个外部程序?好象dos下和xp下都没有啊?还是一个简单的变量 ? |
|
| 第8楼 wubozh | 发表于 2007-11-29 21:27 |
| 初级用户 发帖 18 积分 40 | |
|
if not "!list!"=="" set list=!list:ok,you find me=finish!
请帮我解释一下这句的意义。特别是!list:ok,you find me=finish!这个。不知道是什么意思啊。 |
|
| 第9楼 wubozh | 发表于 2007-11-29 21:45 |
| 初级用户 发帖 18 积分 40 | |
|
我试了一下,用@ echo %string:bcd=bbb%,会用bbb代替string变量里的bcd。可是,这种用法我没见到过。在哪儿有介绍呢?我在论坛上搜索也没搜索到。我是初学批处理啊。大家不要笑话
|
|
| 第10楼 lxmxn | 发表于 2007-11-30 00:01 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by wubozh at 2007-11-29 21:45: 看置顶新手FAQ“Question10”或者直接在命令看帮助set /?。 |
|
| 第11楼 mailmail | 发表于 2009-05-04 23:37 |
| 新手上路 发帖 10 积分 10 | |
|
请问下,我用了lxmxn版主的语句测试我的一个文本,为什么我用这个运行以后会有result is 20 这句话呢?
另外我把输出改为>就只能输出result is 20 了,这里如果只要输出最新的不用保留以前的不能直接把》改成>的吗?如下 @echo off&Setlocal EnableDelayedExpansion for %%a in (nodata.txt) do ( for /f "usebackq delims=" %%b in ("%%a") do ( set string=%%b set string=!string:CWBTF0004 - No data was matched to the specified options.=! >>new_%%~nxa echo:!string! ) ) 运行结果是 Transfer file: d:\ad\ad.DTF Receive failed. Rows transferred: 0 result is 20 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |