FileInstall

封装指定的文件到脚本的已编译版本中.

FileInstall, Source, Dest , Overwrite

参数

Source

要添加到已编译可执行文件中的文件名. 如果未指定绝对路径, 则假定文件在相对于脚本的目录中.

文件名 不能 包含双引号, 变量引用(例如 %A_ProgramFiles%) 或通配符. 此外, 任何特殊字符(例如原义的百分号和逗号) 必须进行转义(如同在其他所有命令的参数中一样). 最后, 此参数必须放在 FileInstall 的右边而不能在下面(即不能在命令的下面使用延续行).

Dest

从可执行文件中释放 Source 时使用的文件名. 如果未指定绝对路径, 则假定在 %A_WorkingDir%. 目标目录必须已经存在. 与 Source 不同, 这里可以使用变量引用.

Overwrite

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

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

1: 覆盖现在的文件.

参数可以是表达式, 甚至可以是计算结果为 1, 0 或空字符串的表达式.

错误处理

[v1.1.04+]: 此命令失败时会抛出异常. 想了解更多信息, 请参阅运行时错误.

失败时, ErrorLevel 被置为 1, 否则为 0.

任何无法将文件写入目标的情况都被认为是失败. 例如:

备注

Ahk2Exe 在编译脚本期间读取该命令时, Source 指定的文件被添加到编译后的脚本中. 稍后, 当编译后的脚本 EXE 运行并执行对 FileInstall 的调用时, 将从EXE中提取文件并将其写入 Dest 指定的位置.

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

如果在普通(未编译) 脚本中使用此命令, 则会简单地复制一个副本, 这样可以帮助测试最终会进行编译的脚本.

FileCopy, #Include

示例

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

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