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

  • 相关阅读:
    HDU 4539郑厂长系列故事――排兵布阵(状压DP)
    HDU 2196Computer(树形DP)
    HDU 4284Travel(状压DP)
    HDU 1520Anniversary party(树型DP)
    HDU 3920Clear All of Them I(状压DP)
    HDU 3853LOOPS(简单概率DP)
    UVA 11983 Weird Advertisement(线段树求矩形并的面积)
    POJ 2886Who Gets the Most Candies?(线段树)
    POJ 2828Buy Tickets
    HDU 1394Minimum Inversion Number(线段树)
  • 原文地址:https://www.cnblogs.com/yhy-blog/p/14541637.html
Copyright © 2011-2022 走看看