Batch file 通过cmd/batch不使用#include编译autoit脚本

Batch file 通过cmd/batch不使用#include编译autoit脚本,batch-file,compiler-construction,autoit,Batch File,Compiler Construction,Autoit,我在MC ND的帮助下制作了这个脚本,它可以工作,但是如果我在autoit文件中包含了#include,它将抛出一个错误。如果#include不存在,它就可以工作。如果我使用autoit自身编译它,那么它可以编译。这是我的代码: @echo off setlocal enableextensions disabledelayedexpansion for %%a in ("%cd%\*.au3") do ( Aut2exe.exe /in "%%~fa" /ou

我在MC ND的帮助下制作了这个脚本,它可以工作,但是如果我在autoit文件中包含了
#include
,它将抛出一个错误。如果
#include
不存在,它就可以工作。如果我使用autoit自身编译它,那么它可以编译。这是我的代码:

@echo off
    setlocal enableextensions disabledelayedexpansion 
    for %%a in ("%cd%\*.au3") do (
        Aut2exe.exe /in "%%~fa" /out "%%~dpna.exe" /icon "%%~dpa\icon.ico" /x86 /comp 4
    )
    endlocal
xcopy *.exe Compile\*.exe
del /f *.exe
xcopy /D /I /V /Y Compile\Aut2exe.exe
del /f Compile\Aut2exe.exe
如果有人能帮忙,谢谢。

来自

AutoIt使用的搜索顺序取决于“包含您”的形式 使用。下表显示了使用搜索的订单目录 两种形式

使用#包括

标准库

The path of the currently running interpreter with "\Include" appended is 
searched.
用户定义库

The registry value mentioned above is read and each directory is searched 
in the order they appear in.
脚本目录

The directory of the currently executing script.
AUT2 exe使用与AutoIt3.exe相同的算法,唯一的区别是 它将Include子目录作为同级目录查找,以 本身(..\Include)

从您发布的代码中,“似乎”您已将
aut2exe
复制到脚本文件夹中,但您所引用的文件位于标准库文件夹中,根据文档,将找不到该文件

你可以

  • constants.au3
    复制到保存脚本的同一文件夹中
  • 将注册表项配置为指向包含文件的文件夹
  • 从autoit标准发行版的文件夹中调用
    aut2exe
    文件,以便找到include文件夹
  • #include
    指令更改为
    #include“path\filename”
    ,以直接指向include文件

常量.au3文件位于何处?@MCND它位于以下目录:
G:\Program Files(x86)\AutoIt3\Include
。并且,
HKEY\U CURRENT\u USER\Software\AutoIt v3\AutoIt\Include
的内容是…?@MCND此注册表项不存在。