中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何更改文本中某两个字符串之间的字符串
<<   [1] [2]  >>   >
作者:
标题: 如何更改文本中某两个字符串之间的字符串 上一主题 | 下一主题
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『楼 主』:  如何更改文本中某两个字符串之间的字符串

有一个文件内容如下: ............. myfile1="a=1;b=2;c=3;source=test1" latest=prut myfile2="a=1;b=2;c=3;source=test2" resue=hour ................... 如何把source=后边的字符换成指定字符呢?指定字符是根据用户输入的参数 set /p all= 替换字符 更改后的文本如下 ............. myfile1="a=1;b=2;c=3;source=替换字符" latest=prut myfile2="a=1;b=2;c=3;source=替换字符" resue=hour ...................




我是菜鸟我怕谁
2007-9-29 10:08
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 2 楼』:  

set /p all= sed "/source/ s/\(source=\).*$/\1%all%\"/" ab.txt


2007-9-29 10:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 3 楼』:  

大哥,好象不行呀 报错: sed 不是内部或外部命令,也不是可运行的程序




我是菜鸟我怕谁
2007-9-29 12:31
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 4 楼』:  

哎,又忘说了,需要下载sed工具的,论坛里似乎有


2007-9-29 12:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 5 楼』:  

大虾,能不能不用那个工具呢?




我是菜鸟我怕谁
2007-9-29 12:34
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 6 楼』:  

set file=INI\INIDM_SERVER.INI set "file=%file:"=%" for %%i in ("%file%") do set file=%%~fi set replaced=wxhx echo. set all= set /p all= 请输入替换字符串: for /f "delims=" %%i in ('type "%file%"') do ( set str=%%i set "str=!str:%replaced%=%all%!" echo !str!>>"%file%"_tmp.txt ) copy "%file%" "%file%"_bak.txt >nul 2>nul move "%file%"_tmp.txt "%file%" 这是上次一位大虾给我的,这个可以更改指定字符串,但是第二次要更改的时候就不灵了,所一我想更改source=和"之间的字符串,这位大哥你看能行不?




我是菜鸟我怕谁
2007-9-29 12:38
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 7 楼』:  

帮帮我,help me ,please!!!




我是菜鸟我怕谁
2007-9-29 12:45
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 8 楼』:  

。。 [ Last edited by wudixin96 on 2007-9-29 at 01:51 PM ]


2007-9-29 13:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 9 楼』:  

很感激这个大哥! 不过似乎那个文件的内容并没有改变啊,我是菜鸟,别介意我这么麻烦啊




我是菜鸟我怕谁
2007-9-29 13:18
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 10 楼』:  

@echo off set /p rep=请输入替换的字符: for /f "delims=" %%i in (ab.txt) do ( set "str=%%i" set "str1=%%i" call :replace ) del /q ab.txt ren ab_tmp.txt ab.txt pause goto :eof :replace set str=%str:*source=% echo %str1%|find /i "source">nul&&call set str1=%%str1:%str:~1%=%rep%"%% echo %str1%>>ab_tmp.txt


2007-9-29 13:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 11 楼』:  

感谢这位大哥,你是好人纳,好人一生平安!




我是菜鸟我怕谁
2007-9-29 13:42
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 12 楼』:  

@echo off set /p rep=请输入替换的字符: for /f "delims=" %%i in (ab.txt) do ( set fl=0 set "str=%%i" set "str1=%%i" call :replace ) pause goto :eof :replace set "str=%str:*source=%"&&set fl=1 if %fl%==0 call set str1=%%str1:%str:~1,-1%=%rep%%% echo %str1% 这个效率高些


2007-9-29 13:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yyf0346
初级用户





积分 128
发帖 56
注册 2007-9-26
来自 江苏 无锡
状态 离线
『第 13 楼』:  

我又来了,能解决问题我就很感激了 我想问,我把in (ba.txt)换成in(2005\ba.txt)就不行了呢,说找不到路径




我是菜鸟我怕谁
2007-9-29 17:43
查看资料  发送邮件  发短消息 网志  OICQ (328141841)  编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 14 楼』:  

2005\ab.txt要写绝对路径
@echo off
set /p rep=请输入替换的字符:
setlocal EnableDelayedExpansion
for /f "delims=" %%a in (c:\2005\ab.txt) do (
set var=%%a
set num=!var:*source=!
call set str=%%var:!num:~1!=%%
echo !str!!rep!"
)
pause
[ Last edited by 26933062 on 2007-9-29 at 06:15 PM ]




致精致简!
2007-9-29 18:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 15 楼』:  

26933062 你这样会在没有source行后面也加上替换的字符的。
请输入替换的字符:haha lpru=pru%tt=haha" myfile1="a=%1;b=2;c=3;source=haha" myfile2="a%=1;b=2;c=3;source=haha" rhou=hou%rr=haha" 请按任意键继续. . .


2007-9-29 18:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
<<   [1] [2]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: