找回密码
 加入
搜索
查看: 13048|回复: 21

[AU3基础] [已解决]检测多个文件是否存在

 火.. [复制链接]
发表于 2012-11-21 23:07:57 | 显示全部楼层 |阅读模式
本帖最后由 dnvplj 于 2012-11-23 08:36 编辑

各位朋友,我问的是:全盘查找1.TXT和2.TXT这俩个文件是否存在,如果存在就删除,我下边写的代码不起作用,请各位朋友指教。
local $a,$b
$a=@HomeDrive&"\1.txt"
$b=@HomeDrive&"\2.txt"
If FileExists($a) And ($b) Then
DirRemove($DriversDir,($a),($b), 1)        
EndIf 
发表于 2012-11-21 23:20:52 | 显示全部楼层
沙发一个,哈哈,首先站位
发表于 2012-11-21 23:25:51 | 显示全部楼层
看了你的代码,单从代码的逻辑上看是有缺陷的。
首先是 if语句中的逻辑AND就跟你的需求不是很对应,目前看你的需求是or逻辑更合理。
然后是你只对$a使用了FileExists而没有对$b使用,就导致了不会执行DirRemove语句。
建议将发的代码的第四行改为如下:
If FileExists($a) OR FileExists($b) Then
试试看看。
 楼主| 发表于 2012-11-21 23:34:38 | 显示全部楼层
第四行改了,但出错。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-11-21 23:52:50 | 显示全部楼层
看到你的这个错误信息你确定改了吗?在错误信息的第二段里还是你原来发的那条语句。
 楼主| 发表于 2012-11-22 00:07:32 | 显示全部楼层
第四行改了,改后的代码和出现错误的图片。
local $a,$b
$a=@HomeDrive&"\1.txt"
$b=@HomeDrive&"\2.txt"
If FileExists($a) OR FileExists($b) Then
DirRemove($DriversDir,($a),($b), 1)
EndIf

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-11-22 02:34:27 | 显示全部楼层
回复 1# dnvplj

这代码如果被汉化的前辈们看到,一定会吐血不止,麻烦先看一下帮助吧~~
短短的几行代码,几乎没有一句是对的~~
不是语法错误就是逻辑错误~~都是想当然的~~
发表于 2012-11-22 02:46:20 | 显示全部楼层
lz,尽管初学者犯错误难免,都是从初学过来的,不过像你这样的初学者,只能说明你根本就没想学
 楼主| 发表于 2012-11-22 08:31:48 | 显示全部楼层
两位高手点评的很对,学习是一个过程,要是都会了发帖时就不叫“求助”了,
发表于 2012-11-22 10:21:39 | 显示全部楼层
我是新手,当练习题来作,用你的直接改,请再琢磨修改成你要的。

Local $a, $b
$a = @HomeDrive & "\1.txt"
$b = @HomeDrive & "\2.txt"

If FileExists($a) Or FileExists($b) Then
        FileDelete($a)
        FileDelete($b)
EndIf
 楼主| 发表于 2012-11-22 10:53:19 | 显示全部楼层
C盘下的1.txt和2.txt,都删除了,其他盘的没有删除,谢谢10楼朋友的回复。
发表于 2012-11-22 12:46:05 | 显示全部楼层
本帖最后由 netegg 于 2012-11-22 12:49 编辑
Local $a, $b
$a = "\1.txt"
$b = "\2.txt"
local $aDisk = Drivegetdrive('fixed')
for $iDisk in $aDisk
 $a = $iDisk & $a
 $b = $iDisk & $b
  If FileExists($a) Or FileExists($b) Then
        FileDelete($a)
        FileDelete($b)
  EndIf
next
\
这只是看着上面代码理解着写的,并不叫全盘搜索,全盘搜索是指所有的子目录都要搜索,不是这么简单玩的
发表于 2012-11-22 13:37:36 | 显示全部楼层
本帖最后由 netegg 于 2012-11-22 14:14 编辑
Func _Seachfile($current, $find)
        Local $search = FileFindFirstFile($current & "\*.*")
        While 1
                Dim $file = FileFindNextFile($search)
               if  $file <> "." Or $file <> ".."  then
                   If Not StringInStr(FileGetAttrib($current & "" & $file), "D") Then
                        If stringinstr($find, $file) Then
                                FileDelete($current & "" & $file)
                        EndIf
                   else
                        _Seachfile($current & "" & $file, $find)
                   EndIf
               endif
        WEnd
EndFunc   ;==>_Seachfilebyext
全盘删试试这个,具体没运行,只是个大概框架
发表于 2012-11-22 13:40:54 | 显示全部楼层
回复 12# netegg

蛋蛋还是蛋疼地帮楼主写了啊~~~
   


DirRemove($DriversDir,($a),($b), 1)
这样的代码也写得出的,不是浪费了你和131738等前辈的汉化心血了??
楼主莫怪,我实话实说~~可别怀恨在心哦~
发表于 2012-11-22 13:49:08 | 显示全部楼层
回复 14# annybaby
当练手了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-18 09:35 , Processed in 0.089449 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表