中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 用VBS写个判断文件和文件夹的子程序
作者:
标题: 用VBS写个判断文件和文件夹的子程序 上一主题 | 下一主题
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『楼 主』:  用VBS写个判断文件和文件夹的子程序

if pd("c:\temp.txt",1) then
msgbox ("文件存在")
else
msgbox ("文件不存在")
end if
我想写个这样的子程序来判断文件,可是。。可是我写错了。

function pd(dz,cs)
if fso.fileexists(dz) then cs=1
if not fso.fileexists(dz) then cs=2
end function

2008-2-4 15:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

什么叫函数?函数(funciton)和过程(sub)区别知道麽?

If pd("c:\temp.txt") Then
    MsgBox
"文件存在"
Else
    MsgBox
"文件不存在"
End If

Function
pd(dz)
   
pd = 0 '或者在下面用else语句
   
If fso.fileexists(dz) Then pd = 1
End Function

2008-2-4 16:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『第 3 楼』:  

想用子程序是想更方便呀。你的语句用PD=1 后面if not fso.fileexists?
if fso.folderexists?if not fso.folderexists?怎么处理?
if pd("c:\temp.txt",1) then
我在后面加一个参数是想达到一个这样的效果
if pd("c:\temp.txt",1) then '为1就是如果文件存在则,为2就是如果文件不存在则
为3文件夹如果存在则 为4如果文件夹不存在则

2008-2-4 16:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 4 楼』:  

多种情况用if或者select判断,你一个if 能 判断麽?

2008-2-4 17:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

'返回值:
'      0----文件和文件夹都不存在
'      1----存在文件
'      2----存在文件夹
Function pd(dz)
   
pd = 0
    If fso.FileExists(dz) Then pd = 1
    If fso.FolderExists(dz) Then pd = 2
End Function

2008-2-4 17:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『第 6 楼』:  

If pd("c:\temp.txt") Then '比如:如果我是要判断文件,实际情况下c盘下面没有temp.txt 但是有temp.txt文件夹。那么程序就会给我一个错误的判断,因为我是判断文件,程序检测到与条件名相同文件夹也会给我存在的报告。

我就说这代码看上去总离的意思还差点。自己改了下这样就行了。

Function pd(dz,cs)
if cs=1 then If fso.FileExists(dz) Then pd=1
if cs=2 then If fso.FolderExists(dz) Then pd=2
if cs=3 then If not fso.FileExists(dz) Then pd=3
if cs=4 then If not fso.FolderExists(dz) Then pd=4
End Function

2008-2-4 22:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 7 楼』:  

用我的函数……

If pd("c:\temp.txt") = 1 Then MsgBox "文件存在"

If pd("c:\temp.txt") = 2 Then MsgBox "文件夹存在"

2008-2-4 23:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『第 8 楼』:  

刚试了下,你上面的模式。貌似用在我的程序里不行。程序不能正常执行了。

2008-2-4 23:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 9 楼』:  

你确定函数用的是我的?

你的反正怎么看怎么怪。。。

if pd("c:\temp.txt",3) then '真了反而是文件不存在。就像速度不用s/m做单位一
'样。这样的话越小速度越快……同样是对的,但是和人们日常的习惯常识不相符。

2008-2-4 23:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『第 10 楼』:  

对。我就是用的
If pd("c:\temp.txt") = 1 Then MsgBox "文件存在"

If pd("c:\temp.txt") = 2 Then MsgBox "文件夹存在"

if pd("c:\temp.txt",3) then

我的意思很简单。为3就调用第三句来判断,第三句是什么。第三句是如果文件不存在则...
Function pd(dz,cs)
if cs=1 then If fso.FileExists(dz) Then pd=1
if cs=2 then If fso.FolderExists(dz) Then pd=2
if cs=3 then If not fso.FileExists(dz) Then pd=3
if cs=4 then If not fso.FolderExists(dz) Then pd=4
End Function

[ Last edited by hackhd on 2008-2-5 at 12:02 AM ]

2008-2-4 23:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 11 楼』:  

你的函数我能看懂。。。我说那个意思,如果你用3
如果函数返回真(3)说明文件不存在……真了反而不存在。如果假了说明存在。

你的cs建议用select语句,不然你每次过程都4个判断下。。。(虽然时间很快,但是代码最好不要这样写)

2008-2-5 00:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『第 12 楼』:  

恩。好的。

2008-2-5 05:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: