中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 12:42
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结][求助] - 文本中提取指定的内容(位置会变动的)
可打印版本  4,454 / 20
第16楼 9527 发表于 2006-10-17 04:29
银牌会员 发帖 438 积分 1,185 来自 北京
我怎么觉得不是太精彩,呵呵 ...........
第17楼 zerocq 发表于 2006-10-17 05:26
中级用户 发帖 196 积分 458
Originally posted by namejm at 2006-10-17 00:37:
  无奈何第5楼的代码十分高效,充分利用了shift来对参数进行改位操作,去掉敏感字符的方法也比较巧妙,以后获取指定位置的字符串可以套用这个 ...


那段看了半天只看懂一点点,BZ能讲解一下吗

经典的代码:D
第18楼 无奈何 发表于 2006-10-17 05:35
荣誉版主 发帖 356 积分 1,338
思想的碰撞会产生出火花,瞬时一显也会让人眼睛一亮。
namejm 兄有些过奖了,小修了一下 5 楼代码,改善一下通用行。可以处理下面的文本了:

input type=hidden name=id VALUE=465974855 <input type=hidden name=id value="1820988170"><input type=hidden name=id value=1008964101>



  1. @echo off
  2. setlocal enabledelayedexpansion
  3. FOR /F "delims=" %%i IN (input.txt) do (
  4. set "t=%%i"
  5. set "t=!t:<= !"
  6. set "t=!t:>= !"
  7. set "t=!t:&= !"
  8. set "t=!t:|= !"
  9. call :sub !t!
  10. )
  11. goto :EOF

  12. :sub
  13. if "%1" == "" exit /b
  14. if "%F%" == "1" echo %~1 &set F=0
  15. if /i "%1" == "value" set F=1
  16. shift
  17. goto sub
无奈何发表于 2006-10-16 17:33


[ Last edited by 无奈何 on 2006-10-17 at 05:38 ]
第19楼 无奈何 发表于 2006-10-17 05:48
荣誉版主 发帖 356 积分 1,338
Re zerocq
我不知道你对哪一部分不理解,是不是对不太常用的 shift 不太理解还是哪里?你可以先看一下命令的帮助信息,如 set /? shift /? 。
第20楼 namejm 发表于 2006-10-17 12:42
荣誉版主 发帖 1,737 积分 5,226 来自 成都
Originally posted by pip at 2006-10-17 02:59:
我也顺便来一个,大体跟无奈何的一致,不过有些细节不太一样

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (1.txt) do (
set "a=%%a&q ...
set "a=!a:*value=!"
……

  原来set也支持通配符的,pip兄还像以前那样善于在细微处下工夫,对你的景仰有如滔滔江水
第21楼 rocmagic 发表于 2007-10-16 18:42
初级用户 发帖 12 积分 26
要找的就是这个啊,正在学习中
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023