条件选择语句
1. if 条件1 then 代码块1 else 代码块2 endif
条件判断
If 条件判断 Then 条件为真时
代码块1
Else 条件为假时
代码块2
EndIf
例子1:
If FileExists(@WindowsDir&'Professional.xml2') Then MsgBox(0,'标题','文本存在') FileCopy(@WindowsDir& 'Professional.xml',@ScriptDir & 'Professional.xml' ,1) ElseIf FileExists(@WindowsDir&'womtrust.dll1') Then FileCopy(@WindowsDir&'womtrust.dll',@ScriptDir & 'womtrust.dll' ,1) Else MsgBox(0,'标题','文本不存在') FileWrite(@ScriptDir & '\match.txt' ,'这是我创建的文件') EndIf
例子2:
Global $OSVersion = @OSVersion If $OSVersion = 'WIN_7' Then FileCopy(@WindowsDir & 'System32dccw.exe',@ScriptDir & 'dccw.exe' ,1) ElseIf $OSVersion = 'WIN_8' Then FileCopy(@WindowsDir & 'System32dccw.exe',@ScriptDir & 'dccw.exe' ,1) ElseIf $OSVersion = 'WIN_XP' Then FileCopy(@WindowsDir & 'System32dccw.exe',@ScriptDir & 'dccw.exe' ,1) Else FileWrite(@ScriptDir & 'dbct.txt','这是我写的文本') EndIf
2. Select...Case
例子3:
Global $OSVersion = @OSVersion Select Case $OSVersion == 'WIN_7' FileCopy(@WindowsDir & 'System32dccw.exe',@ScriptDir & 'dccw.exe' ,1) Case $OSVersion == 'WIN_8' FileCopy(@WindowsDir & 'System32dccw.exe',@ScriptDir & 'dccw.exe' ,1) Case $OSVersion == 'WIN_xp' FileCopy(@WindowsDir & 'System32dccw.exe',@ScriptDir & 'dccw.exe' ,1) Case Else FileWrite(@ScriptDir & 'dbct.txt','这是我写的文本') EndSelect
3. Switch...Case
例子4:
Global $OSVersion = @OSVersion Switch $OSVersion Case 'WIN_7' FileCopy(@WindowsDir & 'System32dccw.exe',@ScriptDir & 'dccw.exe' ,1) Case 'WIN_8' FileCopy(@WindowsDir & 'System32dccw.exe',@ScriptDir & 'dccw.exe' ,1) Case 'WIN_xp' FileCopy(@WindowsDir & 'System32dccw.exe',@ScriptDir & 'dccw.exe' ,1) Case Else FileWrite(@ScriptDir & 'dbct.txt','这是我写的文本') EndSwitch
For 条件 to 范围 step 递增/递减值
递增循环时正数 For $i = 1 To 10 Step 1 ConsoleWrite($i & '|') Next ConsoleWrite(@CRLF) ;~ ;倒序排列时递减值用负数 For $i = 10 To 1 Step -1 ConsoleWrite($i & '|') Next ConsoleWrite(@CRLF)
For实例:
ConsoleWrite("============For循环=================" & @CRLF) For 条件 To 范围 .Next step Global $sGoalPath = '' Global $Attrib For $i = 65 To 90 Step 1 ConsoleWrite(Chr($i) & "|") If FileExists(Chr($i) & ':软件印章大师') Then ;检测盘符下的目标目录是否存在 $Attrib =FileGetAttrib(Chr($i) & ':软件印章大师') ;获取文件的属性赋值给一个变量 If Not StringInStr($Attrib, '软') Then ;判断 $sGoalPath &= Chr($i) & '|' EndIf EndIf Next MsgBox(0,'分区下存在软件',$sGoalPath) ConsoleWrite(@CRLF) ConsoleWrite("====================================" & @CRLF)
while实例:
ConsoleWrite("============While循环=================" & @CRLF) Global $sGoalPath = '' Global $Attrib 注For循环中$i的值不需要定义,其他都需要定义声明变量 Global $i = 65 While $i <= 90 If FileExists(Chr($i) & ':软件印章大师') Then ;检测盘符下的目标目录是否存在 $Attrib =FileGetAttrib(Chr($i) & ':软件印章大师') ;获取文件的属性赋值给一个变量 If Not StringInStr($Attrib, '软') Then ;判断 $sGoalPath &= Chr($i) & '|' EndIf EndIf ;变量变化需要自增1 $i += 1 WEnd MsgBox(0,'分区下存在软件',$sGoalPath)
Do实例:
ConsoleWrite("============Do循环=================" & @CRLF) Global $sGoalPath = '' Global $Attrib ;~ 注For循环中$i的值不需要定义,其他都需要定义声明变量 Global $i = 65 Do If FileExists(Chr($i) & ':软件印章大师') Then ;检测盘符下的目标目录是否存在 $Attrib =FileGetAttrib(Chr($i) & ':软件印章大师') ;获取文件的属性赋值给一个变量 If Not StringInStr($Attrib, '软') Then ;判断 $sGoalPath &= Chr($i) & '|' EndIf EndIf ;变量变化需要自增1 $i += 1 Until $i > 90 MsgBox(0,'分区下存在软件',$sGoalPath)
本次课堂用的命令:
FileExists ( "路径" ) 检查指定文件或目录是否存在.
FileCopy ( "源文件", "目标路径" [, 标志] ) 复制一个或多个文件.
FileWrite ( "文件句柄/文件名", "文本/数据" ) 向此前已打开的文本/数据文件尾追加数据.
FileGetAttrib ( "文件名" ) 返回指定文件的属性代码.
StringInStr ( "字符串", "子字符串" [, 区分大小写 [, 出现次序 [, 开始 [, 数量]]]] ) 检查某个字符串是否含有指定的子字符串.
===================================================================
DriveGetFileSystem ( "路径" ) 返回指定驱动器的文件系统类型.
"FAT" 通常是那些容量低于500MB的驱动器所使用的文件系统,比如软驱,内存盘,USB"笔式"驱动器等等.
"FAT32" Windows 9x/Me 下的硬盘分区所使用的文件系统.
"NTFS" Windows 2000/XP 下的硬盘分区所使用的文件系统.
"NWFS" Novell 网络文件服务器所使用的文件系统.
"CDFS" 通常是 CD(也可能是虚拟光驱软件挂载的ISO镜像).
"UDF" 通常是 DVD.
==================================================================
@HomeDrive 当前用户的帐号目录所在驱动器盘符(例: C:)
@WindowsDir Windows 文件夹 所在路径(例: C:WINDOWS)
@ScriptDir 脚本所在目录. (结果不包含反斜杠符号 )
@OSVersion 返回一个下面的值: "WIN_2008R2", "WIN_7", "WIN_8", "WIN_2008", "WIN_VISTA", "WIN_2003", "WIN_XP", "WIN_XPe", "WIN_2000".