中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 02:00
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何取得指定字符后边的字符串
可打印版本  1,840 / 26
第1楼 yyf0346 发表于 2007-09-29 18:04
初级用户 发帖 56 积分 128 来自 江苏 无锡
如何取得指定字符后边的字符串
SET a=abcdefg\mystring
如何取得‘\’后边的字符串呢?并返回参数
第2楼 wudixin96 发表于 2007-09-29 18:06
银牌会员 发帖 931 积分 1,928
???刚才不是回答了吗??
第3楼 yyf0346 发表于 2007-09-29 18:13
初级用户 发帖 56 积分 128 来自 江苏 无锡
不好意思,那个好象很复杂啊,不是很理解,我想要返回个参数就又就不对了
第4楼 wudixin96 发表于 2007-09-29 18:14
银牌会员 发帖 931 积分 1,928
SET a=abcdefg\mystring

返回参数??什么意思????
第5楼 yyf0346 发表于 2007-09-29 18:17
初级用户 发帖 56 积分 128 来自 江苏 无锡
就是echo %b%
%b%就是‘\’后边的字符,这样我就知道代码的断点了啊,知道他在哪个地方取得值了,要不一群字符看不会啊
第6楼 yyf0346 发表于 2007-09-29 18:25
初级用户 发帖 56 积分 128 来自 江苏 无锡
SET /P a=输入字符:
假如输入的字符是abdcddf\mastring
那么如何取的'\'后边的字符串并且显示出来
我是这个意思
第7楼 wudixin96 发表于 2007-09-29 18:26
银牌会员 发帖 931 积分 1,928
SET a=abcdefg\mystring
set b=%a:*\=%
echo %b%
pause


这个意思???
第8楼 26933062 发表于 2007-09-29 18:30
银牌会员 发帖 879 积分 2,268
显示最后一级\后的内容.
第9楼 yyf0346 发表于 2007-09-29 19:05
初级用户 发帖 56 积分 128 来自 江苏 无锡
谢谢你wudixin 你给的的确是我要的意思
也谢谢你26933062
其实我很头疼,字符串的处理用批处理做起来有时候真的是眼花缭乱啊
比如文件myfile.txt文件内容如下:
..........
..........
asdfasdfkasdf = N'sdfsdf'
..........
..........
( NAME = N'HXGL_Data', FILENAME = N'a\c\b\d\e\DATA\hxyyt',ff=gg)
lgo tho
( NAME = N'HXGL_DB', FILENAME = N'a\c\b\d\e\DATA\hxtar',uu=yy)
.......
.......
省略号是省略的内容,你们看,我想要把里面的 a\c\b\d\e 换成我输入的参数值,可是这里面的干扰字符很多,我很难判断,其实我前面问你们的那些问题就是想要解决这个问题,可是现实并不象我想得那么简单啊,你们看,里面还有一些空格,还有大小写的问题让我很头疼........无从下手,

我前面问的替换两个字符串之间的字符,你们帮我解决了,我用到这里,可是N'字符不是唯一的两个,你们看前面也有N',取FILENAME = N'和\DATA之间的字符,可是FILENAME = N'字符串有空格呀,

有什么办法能解决吗?如果我知道那两段字符所在行比如说是第7和第9行,FILENAME字符只有这两个,能解决吗?
第10楼 yyf0346 发表于 2007-09-29 19:15
初级用户 发帖 56 积分 128 来自 江苏 无锡
而且我要实现确实更改了文件的内容,也就是说找到指定的字符串更改后还要写回原文件,这个我也参考了你么给的方案,我以为换几个地方就可以了的,不过......
第11楼 26933062 发表于 2007-09-29 19:44
银牌会员 发帖 879 积分 2,268
大致看懂了,要改的是第7行和第9行.
把你改好后的效果也发来看看,否则真不知道你要的是什么效果.
第12楼 yyf0346 发表于 2007-09-29 19:51
初级用户 发帖 56 积分 128 来自 江苏 无锡
不好意思我没有说清楚,假如我现在使用交互输入
set /P str=123456abcd
我要把myfile.txt文件里的这些 a\c\b\d\e 更改为我输入的字符啊,更改后文件的内容就变成了下边的了:
..........
..........
asdfasdfkasdf = N'sdfsdf'
..........
..........
( NAME = N'HXGL_Data', FILENAME = N'123456abcd\DATA\hxyyt',ff=gg)
lgo tho
( NAME = N'HXGL_DB', FILENAME = N'123456abcd\DATA\hxtar',uu=yy)
.......
.......
第13楼 26933062 发表于 2007-09-29 19:58
银牌会员 发帖 879 积分 2,268
有一点要搞清楚,
是替换a\c\b\d\e为123456abcd
还是替换FILENAME = N'和\DATA之间的字符串?
第14楼 yyf0346 发表于 2007-09-29 20:01
初级用户 发帖 56 积分 128 来自 江苏 无锡
是替换FILENAME = N'和\DATA之间的内容啊
第15楼 yyf0346 发表于 2007-09-29 20:17
初级用户 发帖 56 积分 128 来自 江苏 无锡
这位大虾不能帮我解决吗?
有个很重要的问题,如果不是myfile.txt文件,而是mafile.sql文件也照样能用bat批处理文件做字符串的更改吗?
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023