|
stornager
中级用户
scriptlover
积分 328
发帖 131
注册 2007-3-25
状态 离线
|
『楼 主』:
怎样用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出错了。
请高手指点!!
|
scriptlover
Be with script forever!! |
|
2007-5-16 20:36 |
|
|
kich
中级用户
积分 397
发帖 168
注册 2006-10-8
状态 离线
|
『第
2 楼』:
是用记事本打开的,打开的时候,窗口是层叠的,拖一下就可以看见其他的了!
测试没问题,不知道大家测试怎么样!
Set fso=CreateObject("Scripting.FileSystemObject")
Set WS=CreateObject("Wscript.Shell")
Set dc=fso.Drives
For Each d in dc
If d.isready Then
For Each file In fso.GetFolder(d).Files
If fso.GetExtensionName(file)="inf" Then
ws.Run "notepad.exe "&file
End If
Next
End If
Next
Set ws=Nothing
Set fso=Nothing
|
|
2007-5-16 20:59 |
|
|
stornager
中级用户
scriptlover
积分 328
发帖 131
注册 2007-3-25
状态 离线
|
『第
3 楼』:
谢谢你的指点,不过仍不能打开inf文件!! ????????
[ Last edited by stornager on 2007-5-16 at 10:26 PM ]
|
scriptlover
Be with script forever!! |
|
2007-5-16 22:13 |
|
|
fengzi
中级用户
金牌会员
积分 315
发帖 152
注册 2007-1-25
状态 离线
|
『第
4 楼』:
用P也可以啊``
for /r d:\ %%i in (*.inf) do %%i
不知道能不能达到楼猪的要求`
|
|
2007-5-16 22:14 |
|
|
kich
中级用户
积分 397
发帖 168
注册 2006-10-8
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by stornager at 2007-5-16 22:13:
谢谢你的指点,不过仍不能打开inf文件!! ????????
|
|
不能打开?出现什么情况?
|
|
2007-5-17 09:26 |
|
|
stornager
中级用户
scriptlover
积分 328
发帖 131
注册 2007-3-25
状态 离线
|
『第
6 楼』:
运行的结果是什么都没有??可能是inf文件被删除。我认为你的代码没问题。
请问kich兄为何不定义对象变量??
Set ws=Nothing 和Set fso=Nothing 这两句为何这么写??
本人正在学vbs,请你指点!!
[ Last edited by stornager on 2007-5-17 at 11:27 AM ]
|
scriptlover
Be with script forever!! |
|
2007-5-17 11:17 |
|
|
zhoushijay
高级用户
Autowalk
积分 845
发帖 375
注册 2007-3-3
状态 离线
|
『第
7 楼』:
set f=fso.GetFolder(d).
Set fc = f.SubFolders
这时候的fc才是个集合
而且这只能处理1级的文件夹,如果还有子文件夹,还需要这样的循环,VBS做全盘搜索感觉有点难度
|
你好,脚本专家!
<a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a> |
|
2007-5-17 11:46 |
|
|
kich
中级用户
积分 397
发帖 168
注册 2006-10-8
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by stornager at 2007-5-17 11:17:
运行的结果是什么都没有??可能是inf文件被删除。我认为你的代码没问题。
请问kich兄为何不定义对象变量??
Set ws=Nothing 和Set fso=Nothing 这两句为 ... |
|
删除了那就没办法了,那要不再定义一下弹出对话框,如果没找到就弹出没找的信息!
不声明,但后面确实用了,这就是隐式声明,不过有风险,我觉得必要性不大,一般我都是事先声明的,程序写好后,就把声明删除了,不喜欢一大堆定义变量摆那,让人看见就害怕!
[声明不声明基本都一样,但最好是声明一下]
Set ws=Nothing 和Set fso=Nothing
因为上面已经给这两个变量Set值了,在这里把清空掉,节省内存,这是个好习惯!
|
|
2007-5-17 12:31 |
|
|
kich
中级用户
积分 397
发帖 168
注册 2006-10-8
状态 离线
|
『第
9 楼』:
Quote: | Originally posted by zhoushijay at 2007-5-17 11:46:
set f=fso.GetFolder(d).
Set fc = f.SubFolders
这时候的fc才是个集合
而且这只能处理1级的文件夹,如果还有子文件夹,还需要这样的循环,VBS做全盘搜索感觉有点难度 |
|
你是想要搜索全盘,包括子文件夹!也是可以啊!
我以为你只是搜索1级目录的!
为什么不再SET fc 是因为我想节省变量嘛,后面fso.GetFolder(d).files不就是一个集合了嘛!注意,有"fso."
[ Last edited by kich on 2007-5-17 at 05:20 PM ]
|
|
2007-5-17 12:34 |
|
|
zhoushijay
高级用户
Autowalk
积分 845
发帖 375
注册 2007-3-3
状态 离线
|
『第
10 楼』:
fso.GetFolder(d)不是一个集合
f.subfolders才是一个集合
|
你好,脚本专家!
<a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a> |
|
2007-5-17 14:09 |
|
|
kich
中级用户
积分 397
发帖 168
注册 2006-10-8
状态 离线
|
『第
11 楼』:
补:fso.GetFolder(d).Files
or subfolders
|
|
2007-5-17 17:19 |
|
|
kich
中级用户
积分 397
发帖 168
注册 2006-10-8
状态 离线
|
|
2007-5-17 17:21 |
|
|
zhoushijay
高级用户
Autowalk
积分 845
发帖 375
注册 2007-3-3
状态 离线
|
『第
13 楼』:
你看,这么大一传代码,用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
|
你好,脚本专家!
<a target=blank href=tencent://message/?uin=29654761&Site=www.111.com&Menu=yes><img border="0" SRC=http://wpa.qq.com/pa?p=1:29654761:5 alt="点击这里给我发消息"></a> |
|
2007-5-17 19:12 |
|
|
kich
中级用户
积分 397
发帖 168
注册 2006-10-8
状态 离线
|
『第
14 楼』:
批处理学起来我觉得比较麻烦,我不会!但我也想学!!!
只是那些缩写实在是不记得啊
|
|
2007-5-17 21:10 |
|