FileInstall

已编译的脚本中包含指定的文件.

FileInstall Source, Dest , Overwrite

参数

Source

类型: 字符串

要添加到已编译可执行文件中的文件名. 如果没有指定绝对路径, 则假定该文件位于(或相对于) 脚本自己的目录中.

这个参数必须是一个带引号的字符串(不是变量或任何其他表达式), 并且必须列在函数名 FileInstall 的右边(即, 不能在它下面使用的延续行上).

Dest

类型: 字符串

当从可执行文件中提取 Source 时, 为其创建的文件的名称. 如果没有指定绝对路径则假定在 A_WorkingDir. 目标目录必须已经存在.

Overwrite

类型: 整数

如果省略, 则默认为 0. 否则, 请指定以下数字之一, 指示是否覆盖已存在的文件:

0: 不覆盖现有的文件. 如果 Dest 已经存在, 则操作会失败并且没有任何效果.

1: 覆盖现有的文件.

其他值保留供将来使用.

错误处理

失败时抛出异常.

任何不能将文件写到目的地的情况都被认为是失败. 例如:

备注

Ahk2Exe 在编译脚本的过程中读取对这个函数的调用时, Source 所指定的文件会被添加到所生成的编译脚本中. 之后, 当编译后的脚本 EXE 运行并执行对 FileInstall 的调用时, 该文件会从 EXE 中提取并写入 Dest 指定的位置.

在编译过程中, 添加到脚本中的文件既不会被压缩也不会被加密, 但编译的脚本 EXE 可以通过使用 Ahk2Exe 中适当的选项进行压缩.

如果在普通(未编译) 脚本中使用此函数, 则会简单地复制一个副本 -- 这有助于测试最终将被编译的脚本. 如果完整的源路径和目标路径相同, 则不进行任何操作, 因为尝试将文件复制到其当前位置将导致错误. 路径在使用 GetFullPathName 展开后与 lstrcmpi 进行比较.

FileCopy, #Include

示例

在脚本的编译版本中包含一个文本文件. 之后, 当编译后的脚本被执行时, 包含的文件会被解压缩到另一个位置, 并使用指定的名字. 如果这个位置上已经有这个名字的文件, 它将被覆盖.

FileInstall "My File.txt", A_Desktop "\Example File.txt", 1