代码的流程控制

条件选择语句

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".

原文地址:https://www.cnblogs.com/yhy-blog/p/14541637.html