![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-29 07:06 |
共 47,816 主题排行 / 349,916 发帖 / 今日 2 篇 / 48,265 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [请教]再请教一下,如何检查变量包含某些字符[已解决] |
| 可打印版本 2,259 / 12 |
| 第1楼 yardian | 发表于 2006-10-19 07:52 |
| 中级用户 发帖 85 积分 305 | |
|
[请教]再请教一下,如何检查变量包含某些字符[已解决] 如题.比如我有个变量A,现在想检查A中是不是包含有BB.该如何写呢?自己试了好长时间都没成功
[ Last edited by yardian on 2006-10-19 at 10:02 ] |
|
| 第2楼 pengfei | 发表于 2006-10-19 07:54 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
echo %a%|findstr /i "bb" && echo 包含bb. || echo 不存在bb.
|
|
| 第3楼 yardian | 发表于 2006-10-19 08:19 |
| 中级用户 发帖 85 积分 305 | |
|
回复的真快,谢谢!不过这个不好做跳转啊,我希望的是,如果包含BB则跳转到C处,不包含则跳转D去.可能因为我开始没把需求说清楚,真不好意思!
|
|
| 第4楼 pengfei | 发表于 2006-10-19 08:21 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
汗...
echo %a%|findstr /i "bb" && goto :c || goto :d |
|
| 第5楼 不得不爱 | 发表于 2006-10-19 08:27 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
楼上好像多打了个:吧
echo %a%|findstr /i "bb" && goto c || goto d |
|
| 第6楼 yardian | 发表于 2006-10-19 08:57 |
| 中级用户 发帖 85 积分 305 | |
|
查了一下命令手册:&&符号也是允许在一行中使用2个以上不同的命令,当第一个命令执行失败后后续的命令将不会再被执行
echo %a%|findstr /i "bb" && goto c || goto d 对于这个代码,我的理解是:如果找不到bb,直接跳到d;如果找到bb,然后跳到c,再跳到d.这里运行c就会问题.而且这个代码是多余的显示一行%a%.(而且实际测试也是这样的) 所以我觉得这个代码不够完美.感觉可能用errolevel实现可能好点.不知道理解的对不对,说错了,大侠不要生气啊 [ Last edited by yardian on 2006-10-19 at 09:10 ] |
|
| 第7楼 pengfei | 发表于 2006-10-19 09:12 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
1. 关于多打 ":", b :b 加不加冒号都代表标签"b"
2. 楼主觉得&&和||会出错, 尽管放心, 当找到"bb", &&代表执行成功跳转到:c, 反之, || 前面找不到"bb"执行错误跳转到:d. 绝对不会出现跳到c又跳到d的情况. 具体多试试就知道了. 来个原创, 不用find, findstr照样查找变量中是否存在特定字符串. 更简单的代码: [ Last edited by pengfei on 2006-10-19 at 09:40 ] |
|
| 第8楼 yardian | 发表于 2006-10-19 09:18 |
| 中级用户 发帖 85 积分 305 | |
|
大侠太牛了啊.写的太复杂了,用起来还真不方便啊:(
[ Last edited by yardian on 2006-10-19 at 09:27 ] |
|
| 第9楼 yardian | 发表于 2006-10-19 09:22 |
| 中级用户 发帖 85 积分 305 | |
|
晕,为什么标题怎么会有乱码啊,而且改不过来
|
|
| 第10楼 namejm | 发表于 2006-10-19 09:34 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
Originally posted by yardian at 2006-10-19 09:22: |
|
| 第11楼 yardian | 发表于 2006-10-19 10:04 |
| 中级用户 发帖 85 积分 305 | |
|
这个标题字数限制的也太少了吧
|
|
| 第12楼 3742668 | 发表于 2006-10-20 08:14 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
if "%str% == ""%str:*abc=cba%" echo same!
代码很少,局限较大. |
|
| 第13楼 不得不爱 | 发表于 2006-10-20 09:14 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
Originally posted by yardian at 2006-10-19 08:57: echo %a%|findstr /i "bb">nul && goto c || goto d 这样应该不会显示%A%了把 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |