zoukankan      html  css  js  c++  java
  • 代码的流程控制

    条件选择语句

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

  • 相关阅读:
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 23: invalid start byte
    cat1标准模组固件开发记录
    cmake 编译出现错误 Could NOT find Threads (missing: Threads_FOUND)
    TMC4361+TMC2130闭环控制带编码器步进电机
    《从优秀到卓越》 吉姆 柯林斯,书读后笔记
    编译MT7621的HTTP通讯信代码
    wireshark分析wifi加密报文
    利用 C# 给 Windows 资源管理器注册右键菜单(Windows Shell)(一):入门
    关于 C# 中 string 类、List 集合的 IndexOf 方法区分大小写的解决方案
    一个简单的利用 WebClient 异步下载的示例(五)(完结篇)
  • 原文地址:https://www.cnblogs.com/yhy-blog/p/14541637.html
Copyright © 2011-2022 走看看