autoIt_v3 学习之路

autoIt v3

下载地址:
http://forspeed.onlinedown.net/down/autoit-v3-setup.zip

1.开始编辑(基础熟知内容)

在这里插入图片描述

注释、数据类型、变量、常量、数组、MsgBox
;单行注释
#cs
多行注释
#ce

#comments-start
多行注释的完整形式
#comments-end

;变量
;1.声明变量
;$变量名

;数据类型
;数值, 字符串,布尔型
$a=123.123
$a="abcd"
$a=True
$a=False

;常量(不能修改)
Const $abc=123456

;声明数组
;Dim $数组名[数组大小]
;数组元素复制,下标从0开始
;$数组名[下标]=;单个数组赋值
Dim $e[5]
$e[0]=1
$e[1]=2
$e[2]=3
$e[3]=4
$e[4]=5

MsgBox(0,"",$e[0])
;多个数组赋值
Dim $f[5]=[1,"2",3,5,"x"]
MsgBox(0,"",$f[2])




;变量类型;Global $变量名(全局)Local $变量名(局部) Dim $变量名(自动识别变量)
#cs
MsgBox(样式,"标题","文本",超时时间)
样式是整数,不同编号有不同效果,可以尝试下
#ce
MsgBox(0,"自然科学","AutoIT")
MsgBox(0,"自然科学","AutoIT",1000)

编号不同的显示效果:
在这里插入图片描述

函数
;函数(方法) 
;申明函数
;Func   函数名(参数列表)
;   函数语句 (Return 返回值)
;EndFunc
;函数调用
;函数名(实参列表)

实例

;无参数形式
Func f()
      MsgBox(0,"",1)
	  MsgBox(0,"",2)
	  MsgBox(1,"",3)
EndFunc
f()
;传参形式

Func f1($a,$b,$c)
      MsgBox(0,"",$a)
	  MsgBox(0,"",$b)
	  MsgBox(1,"",$c)
EndFunc
f1("A",1,"abc")
;默认参数传参
Func f2($a,$b,$c=123)
      MsgBox(0,"",$a)
	  MsgBox(0,"",$b)
	  MsgBox(1,"",$c)
EndFunc
f2("A",1)
;返回值
Func f3($a,$b)
   MsgBox(0,"",$a+$b)
   Return $a+$b
EndFunc

Dim $c=f3(1,2)
MsgBox(0,"",$c)

;全局变量、局部变量、自动识别
Global $var=10
Func f4($a,$b)
   Local $lo=10
   Dim $li=10
   MsgBox(0,"",$a+$b+$var+$lo+$li)
EndFunc
f4(5,5)
;~ 鼠标移动
;~ x轴 y轴  移动速度
MouseMove(400,400,0)
语句结构
语句结构IF

;结构
;顺序结构;条件结构
;If条件 Then 执行语句



$a=10
If $a>0 Then MsgBox(0,"","a>0")

;~ If 条件 Then
;~ 执行语句
;~ ElseIf 条件  Then
;~    执行语句
;~ ...
;~ Else
;~ 执行语句
;~ EndIf

$b=0
If $b>0 Then
   MsgBox(0,"","a大于0")
ElseIf $b<0 Then
   MsgBox(0,"","a小于0")
Else
   MsgBox(0,"","a等于0")
EndIf

;比较关系符
;>, >=,<,<=,=,<>;逻辑关系符
;条件1 And、条件2,or ,Not

$b=1
If $b>0 and  $b=1 Then
   MsgBox(0,"","值不大不小")
Else
   MsgBox(0,"","a等于0")
EndIf

$c=0
If not ($c>0 and  $c<0 ) Then
   MsgBox(0,"","等于0")
EndIf
语句结构Case

;select
; case表达式
;执行语句
;…
;case Else
;执行语句
;Endselect

$a=1

select
	case  $a=1
		MsgBox(0,"","等于1")
	case  $a=2
		MsgBox(0,"","等于2")
	case  $a=3
		MsgBox(0,"","等于3")
	case  Else
		MsgBox(0,"","没有匹配")
EndSelect
语句结构While

;循环结构
;条件初始化
;while循环条件
;执行语句
;更新值
;WEnd

$i=1
While $i<=5
	MsgBox(0,"",$i)
	$i=$i+1
WEnd
语句结构Do

;条件初始化
;Do
;执行语句
;更新值
;Until 循环条件

$j=1
Do
	MsgBox(0,"",$j)
	$j=$j+1
Until $j>5
语句结构For

; For $变量名=起始值To终值[step步长(默认为1) ]
;循环语句
;Next

For $i=9 To  1 Step -1
     MsgBox(0,"",$i)
Next
语句结构ExitLoop

;ExitLoop退出循环

For $i=4 To  6 Step 1
	 MsgBox(0,"",$i)
     If  $i=5  Then  ExitLoop
Next
语句结构ContinueLoop

;ContinueLoop退出本次循环进入下一次

For $i=4 To 9
	If $i=5  Then ContinueLoop
	MsgBox(0,"",$i)
Next
语句结构Exit

;Exit结束脚本

Exit
导入文件

;导入文件
;#include 文件绝对路径/<文件相对路径(AutoIT安装目录下的Include文件夹下)>

创建一个au3文件,名称为a,内容如下

$a=10
Func  f()
	MsgBox(0,"",$a+10)
EndFunc

新建au3文件,做引入

#include "C:\Users\Admin\Desktop\a.au3"
;调用a.au3变量
MsgBox(0,"","a=" & $a )
;调用a.au3的函数
f()

;如果把a.au3文件放入到F:\AutoIt3\Include中,即可不用指定具体路径引用
在这里插入图片描述

#include <A.au3>
; 调用a.au3变量
MsgBox(0,"","a=" & $a )
; 调用a.au3的函数
f()

2.自动化小实例(基于提供函数)

#include <GuiButton.au3>
#include <GuiComboBox.au3>
#include <Array.au3>

;win+R
Send("#r")
;运行窗口的等待
WinWait("运行")
;激活窗口
WinActivate("运行")
;使用ControlSetText控制输入内容。(标题,“文本”,Id)或者class等价id。因为id的是会有动态变化的
;ControlSetText("运行","",1001,)

ControlSetText("运行","","[CLASS:Edit; INSTANCE:1]","control printers")
ControlClick("运行","确定","[CLASS:Button; INSTANCE:2]")
WinWait("控制面板\所有控制面板项\设备和打印机")
;有短暂的空白时间,暂停3Sleep(2000)
WinWait("控制面板\所有控制面板项\设备和打印机")
;键盘输入
Send("Fax")
;应用程序键
Sleep(2000)
Send("{APPSKEY}")
;下键3次
Send("{DOWN 3}")
Sleep(500)
;ENTER
Send("{ENTER}")
WinWait("Fax 打印首选项")
WinActivate("Fax 打印首选项")
;选择到A6,序号为9
;ControlCommand("Fax 打印首选项","","[CLASS:ComboBox; INSTANCE:1]","SetCurrentSelection",9)
;但是实际情况下,是需要根据文本值来进行点击选择的。引入GuiComboBox.au3
$hWnd=ControlGetHandle("Fax 打印首选项","","[CLASS:ComboBox; INSTANCE:1]")
;获取数组的总数
$ListArray=_GUICtrlComboBox_GetListArray($hWnd)
;输出总数$ListArray[0]
;获取某个指定的值$ListArray[10]
;MsgBox(0,"",$ListArray[10])
;查找到A6,返回下表,并作为选择
;_ArraySearch(对象,查找名称,0开始,0最后一个,0找到,2精确的找到)
$index=_ArraySearch($ListArray,"A6",0,0,0,2)
;MsgBox(0,"",$index)
;选择的时候是从0开始的,所以需要减去1
ControlCommand("Fax 打印首选项","","[CLASS:ComboBox; INSTANCE:1]","SetCurrentSelection",$index-1)

3.进程管理实例

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.12.0
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------;;;;

;;;;;;进程管理

; Script Start - Add your code below here
;最大化打开
;Run("E:\装系统备份\setup-x86_64.exe","",@SW_MAXIMIZE)
;隐藏运行,使用外部程序存储进程 返回值
;$proid=Run("notepad.exe","",@SW_HIDE)
;MsgBox(0,"",$proid)


;运行后等待一段时间关闭
;~ RunWait("notepad.exe") ;打开一个笔记本,等待关闭后在继续脚本
;~ MsgBox(0,"","记事本关闭")

;~ 重启
;~ Shutdown(32)


;notepad的进程查找编号

;~ $list=ProcessList("notepad.exe")
;~ ;列出进程的名字和PID编号
;~ MsgBox(0,$list[1][0],$list[1][1])

;所有进程的编号和信息



;~ $list=ProcessList()
;~ ;遍历notepad的总数
;~ For  $i=1 to $list[0][0]
;~    ;列出进程的名字和PID编号
;~    MsgBox(0,$list[$i][0],$list[$i][1])
;~ Next


;~ 结束进程
;~ ProcessClose("notepad.exe")


;~ 进程是否存在
;~ ProcessExists("notepad.exe")
;完整的检查语句为
;~ IF ProcessExists("notepad.exe") Then
;~    MsgBox(0,"","是的")
;~ Else
;~    MsgBox(0,"","不是")
;~ EndIf


;等待进程出现,输入内容或加参数等待5;~ ProcessWait("notepad.exe)
;~ Send("HEllo world")

;~ If  ProcessWait("notepad.exe",5) Then
;~    Send("等待到了")
;~ Else
;~    MsgBox(0,"","等的花都谢了")
;~ EndIf

;等待消失后执行.鼠标右键单击
;~ ProcessWaitClose("notepad.exe")
;~ MouseClick("right",666,666,1)

4.GUI编写

;~ 写GUI分三步走
;~ 1.画好看的按钮
;~ 2.写相应的功能函数
;~ 3.按钮函数关联
#include <GUIConstants.au3>
;;使用onEvebent模式
Opt("GUIOnEventMode",1)

;主窗口
GUICreate("主窗口",400,300)
;关闭x的按钮/$GUI_EVENT_CLOSE系统事件
GUISetOnEvent($GUI_EVENT_CLOSE,"CLOSEClient")

;添加一个标签
GUICtrlCreateLabel("这是一个标签",30,10)
;一个按钮
$okButton=GUICtrlCreateButton("ok",70,50)
;;;连接相应函数
GUICtrlSetOnEvent($okButton,"OKButton")


GUISetState(@SW_SHOW)


;;;;;;;消息循环模式
;~ While 1
;~    ;核心代码
;~    $msg = GUIGetMsg()
;~    If  $msg == $okButton Then
;~ 	  MsgBox(0,"GUI事件","按下OK键")
;~    EndIf
;~ WEnd

;;;;;;;OnEvent模式
While 1
   Sleep(1000)
WEnd

Func OKButton()
  MsgBox(0,"GUI事件","按下OK键")
EndFunc

Func CLOSEClient()
   MsgBox(0,"GUI事件","关闭功能启用")
   Exit
EndFunc

5.变量、驱动、文件夹、文件实例

;~ ;~ 获取剪切板内容
;~ Local $bak = ClipGet()
;~ MsgBox(0, "剪贴板中包含:", $bak)

;~ ;~ ClipPut文字的到剪切板。&符号为连接符号
;~ ClipPut($bak & "额外的文字")
;~ MsgBox(0, "剪贴板中包含:", ClipGet())


;~ ;~ 获取环境变量path的内容
;~ Local $var = EnvGet("PATH")
;~ MsgBox(4096, "", "路径变量: " & $var)

;~ 写入一个环境变量
;~ EnvSet("MYENV", "这是一个测试")

;~ 获取内存信息,获取的为一个列表数组
;~ Local $mem = MemGetStats()
;~ MsgBox(0, "内存使用率(百分比):", $mem[0])
;~ MsgBox(0, "物理内存总数 (KB):", $mem[1])
;~ MsgBox(0, "可用物理 RAM:", $mem[2])
;~ MsgBox(0, "页文件总数:", $mem[3])
;~ MsgBox(0, "可用页文件:", $mem[4])
;~ MsgBox(0, "虚拟内存总数:", $mem[5])
;~ MsgBox(0, "可用虚拟内存:", $mem[6])


;~ 宏指令,@compiled判断是否为编译文件,是为1,否为0
;~ If Not @Compiled Then
;~     MsgBox(0, "", "此脚本必须编译后才能正确显示其功能.")
;~     ;~ exit退出。退出码为-1
;~     Exit -1
;~ EndIf


;~ 读取AutoIt 脚本进程中的 STDIN.
;~ ;~ 局部变量
;~ Local $data
;~ ;~ 无限循环
;~ While True
;~     ;~ 读取传入的值。变量赋值形式为&=
;~     $data &= ConsoleRead()
;~     ;~ 判断错误的标志,产生错误,退出循环ExitLoop
;~     If @error Then ExitLoop
;~     ;~ 等待25毫秒
;~     Sleep(25)
;~ WEnd
;~ ;~ @CRLF回车,换行符号
;~ MsgBox(0, "", "接收: " & @CRLF & @CRLF & $data)
;~ 调用方式echo "xxxx"|Ceshi20210407.exe


;~ 写入数据到STDOUT
;~ Local $var = "测试"
;~ ConsoleWrite("变量 var = " & $var & @CRLF)
;~ MsgBox(0, "", "输出: " & $var)

;~ 写入数据到 STDERR.
;~ Local $var = "测试"
;~ ConsoleWriteError("变量 var= " & $var & @CRLF)


;~ ;~ 创建文件夹
;~ DirCreate("E:\dir_test\dir1")
;~ ;~ 写入文本内容test到test.txt中
;~ FileWrite("E:\dir_test\dir1\test.txt",'test')
;~ ;~ 文件复制拷贝,1为强制覆盖
;~ ;~ DirCopy("E:\dir_test\dir1", "E:\dir_test\dir2", 1)
;~ ;~ 文件复制,1为覆盖已存在文件
;~ ;~ 与linux类型。假如文件在同一目录下,重命名文件夹或文件
;~ DirMove("E:\dir_test\dir1", "E:\dir_test\dir2", 1)
;~ ;~ 提示
;~ MsgBox(32,"","文件夹已复制,你可以去看看!" & @CRLF & @CRLF & "关闭此窗口后将删除创建的文件夹!")
;~ ;~ 删除文件夹以及为文件。参数1
;~ DirRemove("E:\dir_test",1)


;~ 返回硬盘启动的大小
;~ Local $var = DriveGetDrive("all")
;~ ;~ 判度错误标指,非错误情况下
;~ If Not @error Then
;~     ;~ 提示已经找到数量
;~     MsgBox(4096, "", "找到 " & $var[0] & " 个驱动器")
;~     ;i递增,从1开始。增加到4
;~     For $i = 1 To $var[0]
        
        ;~ ;返回磁盘的总大小
        ;~ Local $sizeTotal = DriveSpaceTotal($var[$i])
        ;~ MsgBox(4096, "", $var[$i] & "的总空间:" & $sizeTotal & " MB")

        ;~ ;获取每个盘符的同时,获取大小
        ;~ Local $varSize = DriveSpaceFree($var[$i])
        ;~ ;~ MsgBox(4096, "驱动器盘符 " & $i, $var[$i])  &符号拼接
        ;~ MsgBox(4096, "驱动器盘符 " & $i, $var[$i] & "的可用空间: "& $varSize & " MB")
        ;~ ;~ 文件类型
        ;~ Local $systemFile = DriveGetFileSystem($var[$i])
        ;~ MsgBox(4096, "", "文件系统类型: " & $systemFile)
        ;~ ;~ 卷标的查看
        ;~ Local $lable = DriveGetLabel($var[$i])
        ;~ If $lable='' Then
        ;~     MsgBox(32,"错误","此盘未设置卷标!")
        ;~ Else
        ;~     MsgBox(4096, "", "卷标: " & $lable)
        ;~ EndIf
        
        ;~ ;~ 返回设备的序列号码
        ;~ Local $nums = DriveGetSerial($var[$i])
        ;~ MsgBox(4096, $var[$i] & "驱动器序列号: ", $nums)

        ;~ ;~ 驱动器类型
        ;~ Local $type = DriveGetType($var[$i])
        ;~ MsgBox(4096, "", $var[$i] & "驱动器类型: " & $type)

        ;~ 驱动器状态
        ;READY 硬盘驱动器与包含可移动介质的驱动器. 
        ;~ Local $status = DriveStatus("c:\")
        ;~ MsgBox(4096, "", $var[$i] & "驱动器状态:  " & $status)
        



;~     Next
;~ EndIf

;~ 设置卷组的标签。标签设置无效
;~ DriveSetLabel("C:\", "sdsa")
;~ ;~ 提示修改卷标完成
;~ MsgBox(32,"","卷标已设置")
;~ $lable = DriveGetLabel("C:\")
;~ MsgBox(32,"",$lable)






;;;;;盘挂载
;~ ; 使用用户名:"samba" ,域:"未写" 密码:"samba" 映射 X 磁盘到 \\10.105.0.104\heijunma\ssss
;~ DriveMapAdd("X:", "\\10.105.0.104\heijunma\ssss", 0, "samba", "samba")
;~ MsgBox(0,"提示","当前可查看x盘符的远程挂载情况,确认后删除挂载")
;~ ; 获取映射的详细信息
;~ MsgBox(0, "驱动器 X: 映射到 ", DriveMapGet("X:"))
;~ DriveMapDel("X:")




;~ ;~ 改变工作路径
;~ ;~ @WindowsDir  C:\Windows 
;~ FileChangeDir (@WindowsDir)
;~ ;~ 打开文件
;~ Local $handle = FileOpen("TmComm.log", 0)
;~ if Not @error Then
;~     MsgBox(0,"打开的状态的判定正确","已打开")
;~     FileClose($handle)
;~ EndIf


;~ 文件复制
;~ 复制\ce1下的所有txt文件。8 = 自动创建不存在的目标目录结构 1 = 覆盖已存在的文件  9=8+1
;~ FileCopy("E:\ceshi2\ce1\txt\*.txt","E:\ceshi2\ce2\txt\",9)

;~ 硬链接  1覆盖链接
;~ MsgBox(0, "硬链接", FileCreateNTFSLink("E:\ceshi2\ce2\txt\新建文本文档.txt", "E:\ceshi2\新建文本文档.log", 1))
;~ 软链接  1覆盖链接

; 设置快捷方式和 ctrl + alt + t 快捷键
;~ 1,参数文件路径 E:\ceshi2\新建文本文档.log
;~ 2.lnk 文件E:\ceshi2\newTest.lnk
;~ 3.工作目录 E:\ceshi2
;~ 4.[可选参数] 附加文件参数.  /e,E:\  实际上没必要
;~ 5.[可选参数] 文件说明   这是一个测试链接
;~ 6.图标 [可选参数] 图标文件名称完整路径. @SystemDir & "\shell32.dll"
;~ 7.快捷键"^!t"  
;~ 8.图标编号 15
;~ 9.状态 @SW_MINIMIZE
;;;;设置快捷方式
;~ FileCreateShortcut("E:\ceshi2\新建文本文档.log", "E:\ceshi2\newTest.lnk", "E:\ceshi2", "/e,E:\", "这是一个测试链接", @SystemDir & "\shell32.dll", "^!t", "15", @SW_MINIMIZE)

;~ 删除文件
;~ FileDelete("E:\ceshi2\*.log")

;~ 判断文件存在
;~ If FileExists("C:\") Then
;~     MsgBox(4096, "C:\ Dir ", "存在")
;~ Else
;~     MsgBox(4096, "C:\ Dir", "不存在")
;~ EndIf





;~ 返回搜索路径下的句柄 search
;~ Local $search = FileFindFirstFile("E:\ceshi2\*.*")

;~ ;~ While 1等于 While 1开始循环增加
;~ While 1
;~     ;~ FileFindNextFile搜索句柄的对应文件名。逐个找到
;~     Local $file = FileFindNextFile($search)
;~     ;~ 只要搜索不到错误
;~     If @error Then ExitLoop
;~     ;~ 提示找到的文件
;~     MsgBox(4096, "找到的文件:", $file)
    
;~     ;~ MsgBox(0,"","E:\" & $file & "\*.*")

;~     Local $search2=FileFindFirstFile("E:\ceshi2\" & $file & "\*.*")
;~     While 1
;~         ;~ FileFindNextFile搜索句柄的对应文件名。逐个找到
;~         Local $file1 = FileFindNextFile($search2)
;~         ;~ 只要搜索不到错误
;~         If @error Then ExitLoop
;~         ;~ 提示找到的文件
;~         MsgBox(4096, "找到的文件:", $file1)    
;~         ;~ MsgBox(0,"","E:\" & $file & "\*.*")
;~     WEnd
;~     MsgBox(4096, "查看返回值", @extended)   
;~ WEnd

;~ FileClose($search)
;;;;;;;;;;;;对话框
;~ 局部变量
Local $message = "按住 Ctrl 或 Shift 键选择多个文件"
;~ @WindowsDir 目录为c:\windows
;4 = 允许选择多个文件    1 = 如果用户键入文件名, 则目标文件必须存在
Local $var = FileOpenDialog($message, @WindowsDir & "\", "图像文件 (*.jpg;*.bmp)", 1 + 4)

If @error Then
    MsgBox(4096, "", "没有选择文件!")
Else
	;~ 替换字符串的子串。把|换成了换行符号和分隔符
    $var = StringReplace($var, "|", @CRLF)
    MsgBox(4096, "", "你选择了: " & $var)
EndIf


; 多组筛选
$message = "按住 Ctrl 或 Shift 键选择多个文件"

$var = FileOpenDialog($message, @WindowsDir & "", "图像 (*.jpg;*.bmp)|视频 (*.avi;*.mpg)", 1 + 4)

If @error Then
    MsgBox(4096, "", "没有选择文件!")
Else
    $var = StringReplace($var, "|", @CRLF)
    MsgBox(4096, "", "你选择了: " & $var)
EndIf
;;;;;文件属性
Local $attrib = FileGetAttrib(@DesktopDir &"\win.ini")
$input = StringSplit("R,A,S,H,N,D,O,C,T", ",")
$output = StringSplit("只读 /, 存档 /, 系统 /, 隐藏 /" & _
        ", 普通 /, 目录 /, 脱机文件 /, 压缩 /, 临时 /", ",")
$attrStr=""
For $i = 1 To 9
	
	If $input[$i] == $attrib Then
		$attrStr=$output[$i]
	EndIf
Next
$attrStr=StringTrimRight($attrStr,2) ;删除结尾斜线
MsgBox(0,"文件的属性中文为",$attrStr)
;;设置一或多个文件的属性.
If Not FileSetAttrib("E:\ceshi2\ce2\*.au3","+RS") Then
	MsgBox(4096, "错误", "修改属性发生问题.")
Else
	MsgBox(0,"信息提示","修改文件的属性成功")
EndIf
;;;文本编码
$encoding = FileGetEncoding(@DesktopDir &"\win.ini")
If @error Then
	MsgBox(4096,"错误","不能获取文件编码."))
	Exit
Else
	MsgBox(4096, "", "文件编码: " & $encoding)
EndIf
;;;;;;字节大小
Local $size = FileGetSize(@DesktopDir &"\win.ini")
MsgBox(32,"","记事本程序的大小:  " & $size & "  字节")
;;;;;;;返回文件的时间和日期信息.
Local $t = FileGetTime(@DesktopDir &"\win.ini", 1)
If Not @error Then
    Local $yyyymd = $t[0] & "/" & $t[1] & "/" & $t[2]
    MsgBox(0, 0, "文件的创建日期:  " & $yyyymd)
EndIf
;;;;;;;;返回文件的版本信息
Local $ver = FileGetVersion(@DesktopDir &"\Everything.exe")
MsgBox(0, "版本信息", "资源管理器版本:  " & $ver)
;;;;;移动一或多个文件
FileMove("E:\ceshi2\ce1\txt\*.txt", "E:\ceshi2\ce1\txtbak\",9)
;;;;;;打开文本文件以供读写.


Local $file = FileOpen("test.txt", 0)

; 检查以只读打开的文件
If $file = -1 Then
    MsgBox(0, "错误", "无法打开文件.")
    Exit
EndIf
FileClose($file)

;;;;;;;; 另一个示例, 自动创建目录结构以及文件
$file = FileOpen("E:\ceshi2\ce1\test.txt", 10) ; 10 = 2 + 8 (清除 + 创建目录)

If $file = -1 Then
    MsgBox(0, "错误", "无法打开文件.")
    Exit
EndIf

FileClose($file)
;;;读取打开的文本文件中指定数量的字符
;无法很好的支持中文。无学习价值
FileRead ( "文件句柄/文件名" [, 数量] )
;;;文本文件指定行的文本.(很好的支持中文)
$testStrAll=""
Local $file = FileOpen("E:\ceshi2\ce1\test.txt", 0)

; 检查以只读打开的文件
If $file = -1 Then
    MsgBox(0, "错误", "无法打开文件.")
    Exit
EndIf


; 读入文本行直到文件结束(EOF)
While 1
    Local $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    ;~ MsgBox(0, "读取的行文本: ", $line)
	$testStrAll=$testStrAll & $line
Wend

FileClose($file)
MsgBox(0,"所有文本内容为",$testStrAll)
;;;删除至回收站
FileRecycle ( "E:\ceshi2\ce1\test.txt" )

;;;;清空E盘驱动的回收站的物品,保留其他盘得文件
If MsgBox(36, "注意!!", "如果您的回收站中有重要内容,请不要运行本例子,确认清空吗?") = 6 Then
    FileRecycleEmpty("E:\")
EndIf
;保存文件的对话框
;~ 打开的时候选择的目录
;~ 提示保存的类型。2是路径必须存在
Local $MyDocsFolder = "C:\Users\jhrz\Desktop\备份20210325"

Local $var = FileSaveDialog("选择文件名.", $MyDocsFolder, "脚本文件 (*.aut;*.au3)", 2)
; 选项 2 = 除非选择一个有效的路径/文件,或者按下取消按钮, 否则对话框将一直保持

If @error Then
    MsgBox(4096, "", "已取消保存.")
Else
    MsgBox(4096, "", "你保存为: " & $var)
EndIf


; 多重筛选
$var = FileSaveDialog("选择文件名.", $MyDocsFolder, "脚本文件 (*.aut;*.au3)|文本文件 (*.ini;*.txt)", 2)
; 选项 2 = 除非选择一个有效的路径/文件,或者按下取消按钮, 否则对话框将一直保持

If @error Then
    MsgBox(4096, "", "已取消保存.")
Else
    MsgBox(4096, "", "你保存为: " & $var)
EndIf
;;浏览文件夹对话框.

Local $var = FileSelectFolder("选择文件夹.", "")
;~ 提示浏览选择的文件夹
MsgBox(0,"",$var)
;修改 file.au3 的修改时间为 2011年6月23日的当前时间
Local $var = FileSetTime("E:\ceshi2\ce2\新建文本文档.txt", "20210415")
If Not @error Then
	MsgBox(0,"修改状态","成功")
EndIf
;~ 添加文本/数据到打开的文件.
Local $file = FileOpen("E:\ceshi2\ce2\test.txt", 1)

; 检查文件是否以写入模式打开
If $file = -1 Then
    MsgBox(0, "错误", "无法打开文件.")
    Exit
EndIf

;~ 写入中文且换行
FileWrite($file,"测试" & @CRLF)
FileWrite($file,"12315")
FileWrite($file,"12312412")
;~ 关闭写入
FileClose($file)
MsgBox(0,"提示","写入完成")
;~ 按照行内容,进行文本的写入
Local $file = FileOpen("E:\ceshi2\ce2\test.txt", 1)

; 检查文件是否以写入模式打开
If $file = -1 Then
    MsgBox(0, "错误", "无法打开文件.")
    Exit
EndIf

FileWriteLine($file, "Line1")
;~ 行内容写入,且换行
FileWriteLine($file, "再见" & @CRLF)
FileWriteLine($file, "Line3")

FileClose($file)
MsgBox(0,"提示","写入完成")
;~ 写入ini文件内容
IniWrite("E:\ceshi2\ce2\myfile.ini", "字段2", "关键字", "这是新值")
IniWrite("E:\ceshi2\ce2\myfile.ini", "字段3", "关键字", "这是新值")
IniWrite("E:\ceshi2\ce2\myfile.ini", "字段4", "关键字", "这是新值")
MsgBox(0,"写入成功","注意写入的格式为GBK编码")
;~ 指定读取ini文件内容
Local $var = IniRead("E:\ceshi2\ce2\myfile.ini", "字段2", "关键字", "NotFound")
;~ 读取所有字段的全部关键字与值
Local $varList = IniReadSection("E:\ceshi2\ce2\myfile.ini", "字段2")
If @error Then
    MsgBox(4096, "", "发生错误, 可能没有 INI 文件.")
Else
	;~ $varList[0][0]为数组的大小
    For $i = 1 To $varList[0][0]
        MsgBox(4096, "", "关键字: " & $varList[$i][0] & @CRLF & "值: " & $varList[$i][1])
    Next
EndIf

;~ 读取(*.ini)的全部字段信息.
Local $vars = IniReadSectionNames("E:\ceshi2\ce2\myfile.ini")
If @error Then
    MsgBox(4096, "", "发生错误, 可能没有 INI 文件.")
Else
    For $i = 1 To $vars[0]
        MsgBox(4096, "", $vars[$i])
    Next
EndIf


;~ 重命名配置文件(*.ini)的字段名.
IniRenameSection("E:\ceshi2\ce2\myfile.ini", "字段3", "2020=110")


MsgBox(4096, "测试的结果", $var)
;~ 删除ini文件内容
$resultNum=IniDelete("E:\ceshi2\ce2\myfile.ini", "字段2", "关键字")

If $resultNum == 0 Then
	MsgBox(0,"文件的权限状态","文件不存在或者只读,无法删除")
Else
	MsgBox(0,"文件的权限状态","删除成功")
EndIf
  • 4
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值