![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 07:56 |
共 47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 怎样用vbs搜索全盘的inf文件并打开? |
| 可打印版本 1,648 / 13 |
| 第1楼 stornager | 发表于 2007-05-16 20:36 |
| 中级用户 发帖 131 积分 328 | |
|
怎样用vbs搜索全盘的inf文件并打开? Dim fso,dc,d,f
Set fso=CreateObject("Scripting.FileSystemObject") Set dc=fso.Drives For Each d in dc Set f=fso.GetFile("d:\*.inf") f.OpenasTextStream -2,1 Next 这是本人写的代码,运行时显示找不到指定的文件。我想估计是*.inf出错了。 请高手指点!! |
|
| 第2楼 kich | 发表于 2007-05-16 20:59 |
| 中级用户 发帖 168 积分 397 | |
|
是用记事本打开的,打开的时候,窗口是层叠的,拖一下就可以看见其他的了!
测试没问题,不知道大家测试怎么样! |
|
| 第3楼 stornager | 发表于 2007-05-16 22:13 |
| 中级用户 发帖 131 积分 328 | |
|
谢谢你的指点,不过仍不能打开inf文件!! ????????
[ Last edited by stornager on 2007-5-16 at 10:26 PM ] |
|
| 第4楼 fengzi | 发表于 2007-05-16 22:14 |
| 中级用户 发帖 152 积分 315 | |
|
用P也可以啊``
for /r d:\ %%i in (*.inf) do %%i 不知道能不能达到楼猪的要求` |
|
| 第5楼 kich | 发表于 2007-05-17 09:26 |
| 中级用户 发帖 168 积分 397 | |
Originally posted by stornager at 2007-5-16 22:13: 不能打开?出现什么情况? |
|
| 第6楼 stornager | 发表于 2007-05-17 11:17 |
| 中级用户 发帖 131 积分 328 | |
|
运行的结果是什么都没有??可能是inf文件被删除。我认为你的代码没问题。
请问kich兄为何不定义对象变量?? Set ws=Nothing 和Set fso=Nothing 这两句为何这么写?? 本人正在学vbs,请你指点!! [ Last edited by stornager on 2007-5-17 at 11:27 AM ] |
|
| 第7楼 zhoushijay | 发表于 2007-05-17 11:46 |
| 高级用户 发帖 375 积分 845 | |
|
set f=fso.GetFolder(d).
Set fc = f.SubFolders 这时候的fc才是个集合 而且这只能处理1级的文件夹,如果还有子文件夹,还需要这样的循环,VBS做全盘搜索感觉有点难度 |
|
| 第8楼 kich | 发表于 2007-05-17 12:31 |
| 中级用户 发帖 168 积分 397 | |
Originally posted by stornager at 2007-5-17 11:17: 删除了那就没办法了,那要不再定义一下弹出对话框,如果没找到就弹出没找的信息! 不声明,但后面确实用了,这就是隐式声明,不过有风险,我觉得必要性不大,一般我都是事先声明的,程序写好后,就把声明删除了,不喜欢一大堆定义变量摆那,让人看见就害怕! Set ws=Nothing 和Set fso=Nothing 因为上面已经给这两个变量Set值了,在这里把清空掉,节省内存,这是个好习惯! |
|
| 第9楼 kich | 发表于 2007-05-17 12:34 |
| 中级用户 发帖 168 积分 397 | |
Originally posted by zhoushijay at 2007-5-17 11:46: 你是想要搜索全盘,包括子文件夹!也是可以啊! 我以为你只是搜索1级目录的! 为什么不再SET fc 是因为我想节省变量嘛,后面fso.GetFolder(d).files不就是一个集合了嘛!注意,有"fso." [ Last edited by kich on 2007-5-17 at 05:20 PM ] |
|
| 第10楼 zhoushijay | 发表于 2007-05-17 14:09 |
| 高级用户 发帖 375 积分 845 | |
|
fso.GetFolder(d)不是一个集合
f.subfolders才是一个集合 |
|
| 第11楼 kich | 发表于 2007-05-17 17:19 |
| 中级用户 发帖 168 积分 397 | |
|
补:fso.GetFolder(d).Files
or subfolders |
|
| 第12楼 kich | 发表于 2007-05-17 17:21 |
| 中级用户 发帖 168 积分 397 | |
|
搜索全盘:
|
|
| 第13楼 zhoushijay | 发表于 2007-05-17 19:12 |
| 高级用户 发帖 375 积分 845 | |
|
你看,这么大一传代码,用BAT就方便多了
@echo off & setlocal enabledelayedexpansion set cr=0 for %%i in (c,d,e,f) do ( for /f "delims=" %%a in ('dir /s /b /a-d %%i:\*.inf') do ( echo %%a set /a cr+=1 ) ) echo 一共发现了!cr!个这样的文件! pause >nul |
|
| 第14楼 kich | 发表于 2007-05-17 21:10 |
| 中级用户 发帖 168 积分 397 | |
|
批处理学起来我觉得比较麻烦,我不会!但我也想学!!!
只是那些缩写实在是不记得啊 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |