中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 20:29
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [讨论]利用FOR命令匹配文本内容,如此代码可以么?
可打印版本  1,216 / 9
第1楼 qingzangbasin 发表于 2006-12-23 21:45
初级用户 发帖 14 积分 36
[讨论]利用FOR命令匹配文本内容,如此代码可以么?
autorun.inf只存在于根目录中。
其内容为固定格式:

open=sxs.exe
shell/auto/command=sxs
shell=auto
或者

open=sxs.exe -r
shell/auto/command=sxs.exe -r
shell=auto
或者

open=c:\sxs.exe -r
shell/auto/command=c:\sxs.exe -r
shell=auto

我的目的是截取sxs.exe,以及其路径(这个代码中暂时不需要路径)
------------------------------------


[ Last edited by qingzangbasin on 2006-12-23 at 08:47 AM ]
第2楼 namejm 发表于 2006-12-24 03:22
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  只读取文本内容的话,无须对属性进行操作。给你一段演示代码(为了防止路径或文件名中带有特殊字符,所以在结果中加上了引号,以提高兼容性,可视具体情况决定是否采用引号):


[ Last edited by namejm on 2006-12-23 at 02:59 PM ]
第3楼 qingzangbasin 发表于 2006-12-25 00:14
初级用户 发帖 14 积分 36
Originally posted by namejm at 2006-12-23 02:22 PM:
  只读取文本内容的话,无须对属性进行操作。给你一段演示代码(为了防止路径或文件名中带有特殊字符,所以在结果中加上了引号,以提高兼容栮..


谢谢斑竹的代码,如何进一步匹配AUTORUN.INF中提取的内容呢?
第4楼 namejm 发表于 2006-12-25 00:25
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  匹配内容具体指什么,请详细说明一下。
第5楼 qingzangbasin 发表于 2006-12-25 00:41
初级用户 发帖 14 积分 36
Originally posted by namejm at 2006-12-24 11:25 AM:
  匹配内容具体指什么,请详细说明一下。


获取AUTORUN.INF中的字符后,匹配
set "vir=sxs.exe command.com ravmone.exe autorun.bat"
这里的字符
第6楼 namejm 发表于 2006-12-25 01:30
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  不懂你在说什么。请把要求详细清晰地描述一下:获取到什么字符?何为匹配?……
第7楼 qingzangbasin 发表于 2006-12-25 10:33
初级用户 发帖 14 积分 36
Originally posted by namejm at 2006-12-24 12:30 PM:
  不懂你在说什么。请把要求详细清晰地描述一下:获取到什么字符?何为匹配?……


呵呵,版主对我的代码视而不见

目的就是利用FOR获取AUTORUN.INF中的调用程序,然后判断是否和定义的
set "vir=sxs.exe command.com ravmone.exe autorun.bat"
字符串匹配。
第8楼 namejm 发表于 2006-12-25 11:38
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  不是我视而不见,而是你所谓的 匹配 让我感到无法理解:什么叫匹配?完全一样?还是只要是其中的一个?set "vir=sxs.exe command.com ravmone.exe autorun.bat" 显然让人不知所措。你在7楼的描述我仍然看不明白,因为你还是用了 匹配 二字。要想让别人给出准确的代码,就得把自己的意思准确表达到位,不要让人感到无所适从或者歧义丛生。
第9楼 qingzangbasin 发表于 2006-12-25 11:52
初级用户 发帖 14 积分 36
Originally posted by namejm at 2006-12-24 10:38 PM:
  不是我视而不见,而是你所谓的 匹配 让我感到无法理解:什么叫匹配?完全一样?还是只要是其中的一个?set "vir=sxs.exe command ...


还是谢谢您的关注,我基本解决了问题。:)
以后在学习批处理的同时加强语言功底:)
第10楼 zh159 发表于 2006-12-25 13:34
金牌会员 发帖 1,467 积分 3,687
LZ应该是把set "vir=sxs.exe command.com ravmone.exe autorun.bat"作为一个“库”的方式保存要匹配的内容,利用for %%j in (%vir%) do (......的方式逐一比对%vir%的变量“库”“sxs.exe command.com ravmone.exe autorun.bat”中的一个文件名。
只是没有表达清楚
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023