charson 发表于 2008-10-20 16:54:55

配置文件读取不成功,请高手赐教!

下面的代码是一个以指定时间间隔(即$b)备份万象2004数据库文件到指定位置(即$a),并在文件夹数量达到指定数量(即$c)后清空文件夹,以防爆盘。
这组代码可以正常运行,运行效果见图一。
Dim $i,$a
$i = 0
$a = "d:\万象会员数据备份"
$b = "3000"
$c = "20"
DirCreate( $a )
While 1
        DirCreate( $a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒')
        FileCopy("C:\Wx2004\2004mem.mdb",$a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒', 1)
        FileCopy("C:\Wx2004\2004rec.mdb", $a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒', 1)
        FileCopy("C:\Wx2004\2004stck.mdb", $a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒', 1)
        Sleep( $b )
        $i = $i + 1
        If $i = $c Then
                DirRemove( $a, 1)
                $i = 0
                DirCreate( $a )
                $a = $a
        EndIf
WEnd
图一:

但本人想可以调用INI文件,使$a、$b、$c三个值更灵活。于是写了下在这个setting.ini
----------------------------------
[参数设置]

备份路径=d:\万象会员数据备份
备份间隔=10000
备份数量=10
-----------------------------------
主体代码如下:

$a = IniRead( @ScriptDir & "\setting.ini", "参数设置", "备份路径", "")
$b = IniRead( @ScriptDir & "\setting.ini", "参数设置", "备份间隔", "")
$c = IniRead( @ScriptDir & "\setting.ini", "参数设置", "备份数量", "")
Dim $i
$i = 0
DirCreate( $a )
While 1
        DirCreate( $a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒')
        FileCopy("C:\Wx2004\2004mem.mdb",$a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒', 1)
        FileCopy("C:\Wx2004\2004rec.mdb", $a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒', 1)
        FileCopy("C:\Wx2004\2004stck.mdb", $a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒', 1)
        Sleep( $b )
        $i = $i + 1
        If $i = $c Then
                DirRemove( $a, 1)
                $i = 0
                DirCreate( $a )
        EndIf
WEnd

但是得到的效果如下图,文件被备份到E盘去了,还同时会生成三个打不开的文件(非文件夹)。


请问高手这是哪里出问题了?我是菜鸟,刚刚学AU3写东西,如果有写的不好的地方请不吝赐教!谢谢!


[ 本帖最后由 charson 于 2008-10-26 17:34 编辑 ]

charson 发表于 2008-10-20 17:13:51

沙发自已做先,这个代码都试了一天了,累啊!~:face (12):

大绯狼 发表于 2008-10-20 18:40:36

楼主 你的等于号是全角的

liongodmien 发表于 2008-10-20 19:11:55

原帖由 大绯狼 于 2008-10-20 18:40 发表 http://www.autoitx.com/images/common/back.gif
楼主 你的等于号是全角的
我第一次复制到编辑器的时候是全角的,第二次却竟然又不是了!

但看那个楼主的编辑时间,应该没有被楼主编辑过啊!

liongodmien 发表于 2008-10-20 19:13:03

复制后试过没问题的代码,其实也只不过是复制了下来检测了一下!

$a = IniRead( @ScriptDir & "\setting.ini", "参数设置", "备份路径", "")
$b = IniRead( @ScriptDir & "\setting.ini", "参数设置", "备份间隔", "")
$c = IniRead( @ScriptDir & "\setting.ini", "参数设置", "备份数量", "")
Dim $i
$i = 0
DirCreate( $a )
While 1
      DirCreate( $a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒')
      FileCopy("C:\Wx2004\2004mem.mdb",$a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒', 1)
      FileCopy("C:\Wx2004\2004rec.mdb", $a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒', 1)
      FileCopy("C:\Wx2004\2004stck.mdb", $a &"\"& @YEAR&'-'&@MON&'-'&@MDAY&'-'&@HOUR&'点'&@MIN&'分'&@SEC&'秒', 1)
      Sleep( $b )
      $i = $i + 1
      If $i = $c Then
                DirRemove( $a, 1)
                $i = 0
                DirCreate( $a )
      EndIf
WEnd

大绯狼 发表于 2008-10-20 19:13:09

原帖由 liongodmien 于 2008-10-20 19:11 发表 http://www.autoitx.com/images/common/back.gif

我第一次复制到编辑器的时候是全角的,第二次却竟然又不是了!

但看那个楼主的编辑时间,应该没有被楼主编辑过啊!

测试过了你的程序了 改成半角等于号就能用了

liongodmien 发表于 2008-10-20 19:19:12

原帖由 大绯狼 于 2008-10-20 19:13 发表 http://www.autoitx.com/images/common/back.gif


测试过了你的程序了 改成半角等于号就能用了
哦,对了,终于记起来了,是配置文件的 = 于用了全角!

一直关注在代码上,连自己去改过配置文件也忘了!!!

楼主,  是你的配置文件的等于号'='用了全角了!

charson 发表于 2008-10-21 08:26:41

谢谢大家,这世上还是好人多啊!~~~:face (36):
页: [1]
查看完整版本: 配置文件读取不成功,请高手赐教!