![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 07:17 |
共 48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » VBS检测U盘的插入+查文件+提供操作选择 |
| 可打印版本 1,398 / 10 |
| 第1楼 ffuck | 发表于 2007-06-14 14:32 |
| 新手上路 发帖 6 积分 15 | |
|
VBS检测U盘的插入+查文件+提供操作选择 需要一段vbs,作用:
1.检测U盘的插入,提示 2.罗列U盘内存在的文件,包括隐藏的,并msgbox提示或其他方式提示 3.从一个txt文件里提取文件名,当U盘内存在txt所列文件时, 给出选择:删除.或者拷贝(txt内也可以 .abc 分类的文件类型,遇到那种类型给出选择) 常驻内存 上面那个vbs应该可以做到吧? 是否有高手支招?给个完整的? 重新修改了 [ Last edited by ffuck on 2007-6-15 at 03:21 PM ] |
|
| 第2楼 my3439955 | 发表于 2007-06-16 09:11 |
| 中级用户 发帖 99 积分 272 | |
|
VBS恐怕是做不到如此完美的
首先是实时监控闪存盘这一点 你就要写一个循环来一直判断 尽管这样效率上还算说得过去 但是大部分循环是没有结果的 白白占用了系统的很多资源 或许你想到在循环内设置延时 但这样会造成你的监控不及时 并且同样会有许多循环被浪费 脚本语言做不到这一点 程序语言可以很容易做到 因为新加硬件时系统会通知WM_DEVICECHANGE消息 在自己的程序中响应这个消息就好了 |
|
| 第3楼 ffuck | 发表于 2007-06-16 20:10 |
| 新手上路 发帖 6 积分 15 | |
|
VBS恐怕是做不到如此完美的
首先是实时监控闪存盘这一点 你就要写一个循环来一直判断 ------------------------------------------这个确实是的 但是大部分循环是没有结果的 白白占用了系统的很多资源 -----------------------------------------觉得应该不会占用很多 要是再有个格一段时间整理内存的..相信会好多? 当然vbs占用的内存对于现在1G以上的应该算不了什么。 |
|
| 第4楼 my3439955 | 发表于 2007-06-17 12:11 |
| 中级用户 发帖 99 积分 272 | |
|
我说的资源不是内存资源
而是CPU资源 由于一直处于循环的过程中 你的CPU越优秀 循环的次数越多而已 但是占用率却总是居高不下的 你希望有一个不断持续的非窗口循环在你系统的后台运行吗? |
|
| 第5楼 ffuck | 发表于 2007-06-17 14:55 |
| 新手上路 发帖 6 积分 15 | |
|
了解...了解...
不过要是能写出来我觉得也应该不错... 有没有高手帮帮忙?暂不考虑系统占用什么的问题吧... |
|
| 第6楼 3742668 | 发表于 2007-06-17 16:18 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
利用WMI的异步操作,基本上不存在CPU占用率的问题。
至于其它的功能,用InternetExplorer.Application对象来实现应该比较完美,不过对于安装了某些第三方浏览器的系统来说,却可能得不到期望的结果。 |
|
| 第7楼 HAT | 发表于 2007-06-17 16:27 |
| 版主 发帖 5,017 积分 9,023 | |
|
等待3742668斑竹的大作:)
|
|
| 第8楼 ffuck | 发表于 2007-06-17 17:35 |
| 新手上路 发帖 6 积分 15 | |
|
斑竹真厉害,帮忙搞定吧...已经找了很久...
史无前例. 呵呵 |
|
| 第9楼 3742668 | 发表于 2007-06-17 17:54 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
还是给个示例代码吧。不过这个方案并非优化后的方案:
只是简单地当等待增加盘符,事件实例被创建后则打印出新增加的盘符下所有的文件名。并没有对新增加盘符的类型做检测,另外也可能存在其他一些问题。 至于你要求的其他功能,在以往的脚本中都有讨论过,可以学习一下老贴。 另外,值得注意的是通过BAT也能基本完成你的要求。在XP专业版中提供了一个命令:eventtriggers,利用它可以响应事件日志中的可移动磁盘的插入事件。一个简单的例子: eventtriggers /create /tr "宽带" /tk c:\ddd.bat /eid 20159 /create表示创建 事件触发器 /tr 指定事件触发器的名字 /tk 表示事件触发器运行的任务(你的其他功能可以写到这里指定的脚本里) /eid 则指定事件源,在上面的例子中指定的时间源为 PPPOE拨号连接断开事件 执行上面的命令后,会在“任务计划”中多出一项任务,这个任务被启动后会执行C:\ddd.bat,当宽带连接被断开的时候会启动该任务。 写得乱七八糟的,希望能对你有点帮助吧。 |
|
| 第10楼 oraix | 发表于 2007-06-17 19:05 |
| 新手上路 发帖 1 积分 2 | |
|
可移动磁盘的插入事件好像是不会放到系统的eventlog的
|
|
| 第11楼 tbx | 发表于 2008-01-20 19:29 |
| 新手上路 发帖 6 积分 11 | |
|
其实用 wmi可以做的更好的,
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |