输入已编译的 AUTOIT 程序的最佳方式

Best way to input a compiled AUTOIT program

上下文:

我将编写一个将分发给许多人的 AUTOIT 脚本(我们称之为 script.exe)。使用我的程序的人只需要输入一次 script.exe 并且可能 运行 script.exe 多次。当然,人们可以根据自己的意愿自由更新输入。

所以首先我想到了使用输入文件的方法,然后我的程序可以读取、解析然后使用它。可以做一些改进是使用 json 格式。但是我觉得这种方法太复杂了,所以我想出了解决方案2。

解决方案 2 是我的 script.exe 将导入 input.au3 内容如下:

$input1 = '...'
$input2 = '...'
$input3 = '...'
$input4 = '...'

那我就编译script.exe,不编译input.au3,让大家可以自由更新input.au3。这种方法很自然地帮助我解决了问题,但我最终不知道该怎么做。

所以我的问题是:

  1. 如何编译一个程序但排除某些包含文件不编译?
  2. 有没有比我的解决方案更好的方法?或者甚至任何现有的库都可以帮助解决方案 1 如此容易接近?

您想要的(包含用户可编辑变量的外部文件)称为 .INI 文件。这些文件在历史上具有固定格式,以“部分”结构,可能看起来像:

[INPUTFILE]
; comment
Folder=C:\in
File=test.txt

[OUTPUTFILE]
Folder=C:\out
File=test.csv
Delimiter=;

AutoIt 能够处理那些 .INI 文件(从特定部分读取一个键,更改它,或者添加一个,或者删除它)。

例如,您可以通过以下方式读取特定键:

$delim = Iniread(@ScriptDir & "\MyIni.ini", "OutputFile", "Delimiter", ",")

其中 $delims 默认为 ,,当在 .ini 文件(最后一个参数)中找不到密钥时

IniReadSection 将整个部分读入数组。

INI 文件的优点是,它不包含实际的变量名称,而是人类可读的“键”;它们的值被分配给具有 IniRead

的变量