找回密码
 加入
搜索
查看: 3989|回复: 7

[AU3基础] [已解决]第一次使用do...until循环竟然失败!

  [复制链接]
发表于 2014-2-11 23:47:18 | 显示全部楼层 |阅读模式
本帖最后由 smooth 于 2014-3-25 11:40 编辑

第一次使用do...until循环竟然失败!
用命令删除Oracle数据库表空间后,数据库需要刷新,所以对应的文件不可以马上删除,可能要等个几十秒钟。于是我想了个方法,就是用do...until循环来做。

Do
    FileDelete("C:\NC\1.dbf")
    FileDelete("C:\NC\2.dbf")
Until FileExists("C:\NC\1.dbf") = 0 And FileExists("C:\NC\2.dbf") = 0

我的原意是,执行删除文件的命令,只要能检测到它们都还在,那就不断的删,不断的删,一直不停。可是实际使用下来,发现代码根本就不这样,删不掉文也直接往下面执行。
发表于 2014-2-12 00:34:01 | 显示全部楼层
我在想是不是因为你在执行这段代码的时候   这两个文件还没有出来 所以已经达到了untile的条件  如果文件名固定的话 这样试试?
Local $i
Do
        $i += FileDelete("a.txt") + FileDelete("b.txt")
Until $i = 2
 楼主| 发表于 2014-2-12 10:43:59 | 显示全部楼层
我在想是不是因为你在执行这段代码的时候   这两个文件还没有出来 所以已经达到了untile的条件  如果文件名 ...
zch11230 发表于 2014-2-12 00:34


有道理,谢谢提醒!
发表于 2014-2-12 21:33:24 | 显示全部楼层
还是oracle 自身删除的比较好吧
发表于 2014-2-12 21:55:14 | 显示全部楼层
你的代码所表达的意思是“不停的检测是否存在,当检测到存在时则将二者删除,确定二者已删除后则退出”,与你的本意完全不同。
发表于 2014-2-12 23:34:33 | 显示全部楼层
回复 5# skyfree


    你所说的就是他的本意,你再看看,这两个文件原本是存在的,只是一条删除指令并不能立马生效,所以不断检测存在不断删直到确实删除后再往后走。
 楼主| 发表于 2014-2-12 23:53:38 | 显示全部楼层
回复 5# skyfree

其实是一样的效果,只是表述方法不一样罢了。
发表于 2014-2-13 03:28:14 | 显示全部楼层
回复 2# zch11230


    看了你的代码,忽然觉得自己写的程序太烂了...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 21:31 , Processed in 0.087728 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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