![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-29 07:07 |
共 47,816 主题排行 / 349,916 发帖 / 今日 2 篇 / 48,265 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 一个关于在“复杂”情况下判断字符串的问题 |
| 可打印版本 2,352 / 11 |
| 第1楼 j0ey | 发表于 2006-12-15 06:30 |
| 初级用户 发帖 11 积分 31 | |
|
一个关于在“复杂”情况下判断字符串的问题 今天遇到个问题,用了很多方法都没解决。(VBS,C/C++...)。 情况是这样的。 有一个网页是txt的,(源码) 我想提取里面的几个连接,然后根据具体的连接内容返回不同的值。。 如: images\char\44.jpg 就返回A, images\char\45.jpg 则返回B。。。。
我先用 type wangye.txt | find "images\char\" >1.txt 得到的文件内容是: <td bgcolor="#000000" align="left"> <img src="images/char/oo.gif" border=0 width="25" height="25"> <td bgcolor="#000000" align="left"> <img src="images/char/S.gif" border=0 width="25" height="25"> <td bgcolor="#000000" align="left"> <img src="images/char/cc.gif" border=0 width="25" height="25"> <td bgcolor="#000000" align="left"> <img src="images/char/V.gif" border=0 width="25" height="25"> 其中都含有特征“images\char\” 这个代码, 我想根据images/char/后面的信息来判断。。也就是oo.gif , S.gif , cc.gif , V.gif 来返回不同的值,保持顺序不变,然后输出到一个文件中。。 请高手帮帮我~~。 谢谢 |
|
| 第2楼 namejm | 发表于 2006-12-15 06:40 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
给一段提取 gif 名的批处理代码,至于究竟要返回什么值,请根据你自身的要求来做:
|
|
| 第3楼 redtek | 发表于 2006-12-15 06:46 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
欣赏!简捷至极~:)
|
|
| 第4楼 a9319751 | 发表于 2006-12-15 06:49 |
| 中级用户 发帖 170 积分 439 | |
|
setlocal enabledelayedexpansion
for /f "tokens=9 delims=^<^>^=^/" %%i in (1.txt) do ( set gif=%%i set gif=!gif:"=! set gif=!gif: border=! echo !gif! ) pause |
|
| 第5楼 j0ey | 发表于 2006-12-15 07:58 |
| 初级用户 发帖 11 积分 31 | |
|
先谢谢各位的帮助了~~ (感动ing...)
我刚才根据上位各位的代码,自己修改了一下: setlocal enabledelayedexpansion for /f "tokens=9 delims=^<^>^=^/" %%i in (123.txt) do ( set n=%%i set n=!n:"=! set n=!n: border=! set n=!n:oo.gif=o! set n=!n:S.gif=S! set n=!n:cc.gif=c! set n=!n:V.gif=V! echo !n!>>joeyjoey.txt ) pause 替换内容成功, 但是输出的文件joeyjoey.txt的内容是这样的: o S c v 也就是说内容是竖起来的。 能不能把他们横过来那? 就像C语言里不用“/n” 那样的 |
|
| 第6楼 redtek | 发表于 2006-12-15 08:07 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
把 echo !n!>>joeyjoey.txt 这句改为下面指令,就可以输出内容到文件但不换行~:)
|
|
| 第7楼 j0ey | 发表于 2006-12-15 08:20 |
| 初级用户 发帖 11 积分 31 | |
|
试了6楼朋友的方法,可是输出的是:
o set /p=o S set /p=S c set /p=c V set /p=V 不知道为何 |
|
| 第8楼 redtek | 发表于 2006-12-15 08:36 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
我试着你的代码,并用顶楼的那些html数据试验,输出如下内容:
oScV 下面代码没有问题,兄在试一下~:) |
|
| 第9楼 redtek | 发表于 2006-12-15 08:41 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
另:兄代码中关于for的语句可以参考2楼版主代码,2楼代码精炼~:)
namejm版主的 "tokens=3 delims=/." 这段指令非常简捷,也不会出错:) |
|
| 第10楼 namejm | 发表于 2006-12-15 08:46 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
把提取到的 gif 文件名横向排列可以使用如下代码(兼容各种特殊字符的文件名):
|
|
| 第11楼 j0ey | 发表于 2006-12-15 09:11 |
| 初级用户 发帖 11 积分 31 | |
|
非常感谢namejm版主和redtek兄弟的帮助, 我今后会努力学习的, 呵呵 还有你们两个真的很厉害~ 羡慕。。
|
|
| 第12楼 ccwan | 发表于 2006-12-15 21:23 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
精彩!redtek和namejm的代码很厉害,尤其namejm兄,非常简洁高效。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |