中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-30 08:54
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,278 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]FileExists方法的运行结果和预期相反(附代码)
可打印版本  993 / 8
第1楼 dopodelf 发表于 2009-01-16 14:04
新手上路 发帖 4 积分 5
[求助]FileExists方法的运行结果和预期相反(附代码)
On Error Resume Next
filespec="d:\sources.list"
Set myFso=CreateObject("Scripting.FileSystemObject")
If (getfso=myFso.FileExists(filespec)) Then
wscript.echo getfso
Else
wscript.echo "文件或文件夹不存在"
End If
Set fso=Nothing

源程序如上,文件sources.list实实在在地在D盘根目录下存在,但是运行结果却是"文件或文件夹不存在",而如果我把两句echo语句换一下位置,输出结果是空白。

不知道问题究竟出在哪里,请大家帮忙分析一下问题所在,谢谢!
第2楼 radem 发表于 2009-01-16 14:15
高级用户 发帖 383 积分 691
Set myfso=Nothing吧
第3楼 slore 发表于 2009-01-16 14:16
铂金会员 发帖 2,478 积分 5,212
getfso 初始化为0即为假
myFso.FileExists(filespec)) 文件存在所以为真

假=真?不成立……进入else
第4楼 radem 发表于 2009-01-16 14:32
高级用户 发帖 383 积分 691
On Error Resume Next
filespec="d:\sources.list"
Set myFso=CreateObject("Scripting.FileSystemObject")
If myFso.FileExists(filespec)=True Then
wscript.echo filespec & " 存在"
Else
wscript.echo "文件或文件夹不存在"
End If
Set myFso=Nothing
第5楼 dopodelf 发表于 2009-01-16 14:32
新手上路 发帖 4 积分 5
非常感谢slore,我一直以为getfso=myFso.FileExists(filespec)这样写是赋值,原来在if后面就变成判断了。那我如果要在这里赋值该怎么写呢?
第6楼 dopodelf 发表于 2009-01-16 14:36
新手上路 发帖 4 积分 5
谢谢radem的修改指正!!
第7楼 radem 发表于 2009-01-16 15:24
高级用户 发帖 383 积分 691
4楼不行么?已经赋值给filespec了还给getfso就没必要了吧
确实要的话,改为:
第8楼 zydmz 发表于 2009-01-16 19:52
新手上路 发帖 7 积分 8
On Error Resume Next
filespec="d:\sources.list"
Set myFso=CreateObject("Scripting.FileSystemObject")
If myFso.FileExists(filespec) Then
wscript.echo "文件存在"
Else
wscript.echo "文件不存在"
End If
Set fso=Nothing
第9楼 mountvol 发表于 2009-01-17 10:24
初级用户 发帖 117 积分 186
还是习惯用Err:
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023