练习代码,仔细对校依然出错.求解!
初学者, 学习过程中做下面这个练习的完全发现不到问题,但是运行就出错.求老鸟指点!Opt("mustdeclarevars",1)_main()
Exit
Func _main()
Local $driversdir=EnvGet("systemdrive")&"\drivers"
Local $cameradir=$driversdir&"\camera"
Local $tempdir=EnvGet("windir")&"\temp"
If FileExists($driversdir)Then
Local $r=MsgBox(3+32,"3-3",_
"发现"&$driversdir&",是否删除?"_
&@CRLF&@CRLF&_
"单击“是”,全部删除;"&@CRLF&_
"单击“否”,保留摄像头驱动;"& @CRLF & _
"单击“取消”,不删除")
If $r=6 Then
DirRemove($driversdir,1)
MsgBox(0+64,"3-3","全部的孙子已经干掉")
ElseIf $r=7 Then
DirMove($driversdir&"\camera",_
$tempdir&"\_camera",1)
DirRemove($driversdir,1)
DirCreate($driversdir)
DirMove($tempdir&"\_camera",_
$DriversDir & "\Camera", 1)
MsgBox(0+64,"3-3",_
"除摄像头以外的驱动已删除!")
ElseIf $r=2 Then
MsgBox(0+64,"3-3","全部驱动已经保留!")
EndIf
Else
MsgBox(0,"3-3","未发现"&$driversdir&"!")
EndIf
endfunc
新人刚刚起步,请各位大神不吝指教.. 拜谢!! orz... 1,你这应该是反编的。例如:3-3。
在msgbox里面的都要改。
2,EnvGet("systemdrive"),这个环境变量在刚安装的系统里都没有,应该是这段代码前面自定义的。
可以用宏@HomeDrive来确定系统盘所在。 1,你这应该是反编的。例如:3-3。
在msgbox里面的都要改。
2,EnvGet("systemdrive"),这个环境变量在刚 ...
ila 发表于 2015-6-8 15:19 http://www.autoitx.com/images/common/back.gif
我觉得问题应该出在嵌套的if语句当中,因为在C盘不存在drivers文件夹时.运行起来不报错.
存在drivers文件夹事才出错.. 1.我不知道是不是你自己写的还是像 #3,或者你基础真的很糟糕。
2.你报错的原因就在下划线,使用下划线要使用空格分开,而你没有。其就如 #3所言!
MsgBox(_
0,_
0,_
0) ;no
MsgBox( _
0, _
0, _
0) ;yes
3.使用的环境变量不如直接使用@HomeDrive,我不知道你的所用。
P.S. 如果不是做个人驱动管理的话就不要用@HomeDrive,以防计算机上存在多系统!在winpe下那就不要环境变量了...
4.我看了你保留摄像头驱动的方法,个人认为效率降低了。
你用的是先移动摄像头驱动到ws\temp\camera,再删除c:\drivers,接着再创建,接着再移动ws\temp\camera驱动到 c:\drivers\camera
如果摄像头驱动较大移过来移过去比较浪费时间,不过摄像头驱动没有多大,随你。
5.以上个人观点,欢迎批评指教...Opt("mustdeclarevars",1)
_main()
Exit
Func _main()
Local $driversdir = EnvGet("systemdrive") & "\drivers"
Local $cameradir = $driversdir & "\camera"
Local $tempdir = EnvGet("windir") & "\temp"
If FileExists($driversdir) Then
Local $r = MsgBox(3 + 32, "3-3", _
"发现" & $driversdir & ", 是否删除?" _
& @CRLF & @CRLF& _
"单击“是”,全部删除;" &@CRLF & _
"单击“否”,保留摄像头驱动;" & @CRLF & _
"单击“取消”,不删除")
If $r = 6 Then ;yes
DirRemove($driversdir, 1)
MsgBox(64, "3-3", "全部的孙子已经干掉")
ElseIf $r = 7 Then ;no
DirMove($driversdir & "\camera", _
$tempdir & "\_camera", 1)
DirRemove($driversdir, 1)
DirCreate($driversdir)
DirMove($tempdir & "\_camera", _
$DriversDir & "\camera", 1)
MsgBox(64, "3-3", _
"除摄像头以外的驱动已删除!")
ElseIf $r = 2 Then ;cancel
MsgBox(64, "3-3", "全部驱动已经保留!")
EndIf
Else
MsgBox(0, "3-3", "未发现" & $driversdir & "!")
EndIf
endfunc 我觉得您在删除系统目录下的文件的时候,是不是需要先请求获取一下管理员权限?
页:
[1]