AutoHotKey文件与路径交互操作

AHK作为一种脚本语言,其功能特点是对操作系统功能的整合与简化,从而缩减操作流程,从而起到提高效率的目的。鼠标、键盘的映射,相当于是对外设操作的简化,而除了外部交互之外,操作文件则是一项十分频繁的任务,所以在AHK中提供了诸多路径操作函数。

路径操作

AHK支持文件夹和文件的复制、移动、删除等操作,具体如下

操作 文件夹 文件
复制 DirCopy FileCopy
移动 DirMove FileMove
删除 DirDelete FileDelete
判存 DirExist FileExist
创建 DirCreate

此外,还有SetWorkingDir可以更改脚本当前的工作目录。

其中,复制、移动操作至少需要两个输入参数,即源文件(夹)和目标文件(夹)。移动和判存函数则至少只需要一个输入路径。

此外,在删除文件夹时,会有一个布尔类型的可选参数Recurse,默认为false,表示若文件夹不为空,则不进行操作并抛出异常;如果设为true,则

在复制和移动操作时,会有一个可选参数Overwrite,默认为false,表示不覆盖现有项目,否则对现有内容进行覆盖。

下面举一个例子

CapsLock::{
    DirCreate "test"
    if DirExist("test")
    	Msgbox "test存在"
}

执行脚本后,点击CapsLock,则会在脚本所在路径创建一个名为test的文件夹,并弹出test存在的提示框。如果在创建文件夹之前,使用SetWorkingDir函数更改工作目录,则test文件夹会创建到相应的路径下。

文件选择

AHK提供了两个非常便捷的GUI工具,用来选择文件或文件夹,分别是DirSelectFileSelect,其调用接口分别为

slctFolder := DirSelect(StartingFolder, Options, Prompt)
slctFile := FileSelect(Options, RootDir\Filename, Title, Filter)

各参数含义如下

  • StartingFolder 起始路径
  • RootDir\Filename 起始路径及默认文件名
  • PromptTitle 对话框的操作文本
  • Filter 文件过滤器

DirSelectFileSelectOptions含义不同,在文件夹对话框中,其可选参数及其含义为

在文件对话框中,其可选参数及其含义为

  • D 允许用户选择文件夹,这种情况下Filter必须省略
  • M 支持多选
  • S 为文件保存对话框

文件读写

AHK可以创建、写入、读取文件,与此相关的函数有

函数 说明
FileOpen 打开文件
FileEncoding 设置默认编码
FileAppend 内容追加
FileRead 读取文件

下面做一个简单的脚本来演示一下这几个函数的功能

CapsLock::{
    fileAppend "autohotkey", "test.txt"
    MsgBox fileRead("test.txt")
}

执行脚本后,点击CapsLock,就会创建一个文本文件test.txt,内容为autohotkey,同时弹出消息框,内容也是autohotkey

和大多数编程语言不同,AHK并没有提供类似FileWrite这样直接覆盖旧文件然后写入的函数,如果想实现类似功能,可以先将原来的文件删除。

此外,FileAppend, FileRead这两个函数都有可选参数Encoding,用于声明文件编码,缺省时采用默认编码。FileEncoding函数可设置默认编码。

文件属性

AHK封装了一些获取和设置文件属性的函数,

类别 设置 获取
文件类别 FileSetAttrib FileGetAttrib
时间戳 FileSetTime FileGetTime
文件字节数 FileGetSize
版本 FileGetVersion

其中,Attrib表示文件类别,在Windows中有如下几类

R A S H N O T
只读 存档 系统 隐藏 普通 离线 临时

而文件时间则包括三类,通过WhichTime参数调控,其中M表示修改时间;C表示创建时间;A表示上次访问时间。

CapsLock::{
    MsgBox FileGetTime("test.txt", "M")
}

执行结果为

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37816922/article/details/130929168