Windows 编译时批处理到exe不工作

Windows 编译时批处理到exe不工作,windows,batch-file,cmd,Windows,Batch File,Cmd,我的问题是,当我使用软件“bat-to-exe converter v1.6”将.bat文件转换为编译后的.exe文件时,无法100%工作。 当我使用.bat时,它可以100%工作,但不能使用.exe 所讨论的.bat文件有两个条件表达式,但处理器体系结构的一个表达式不起作用: rem第一个是检查它,它的工作100% 如果%SisteMap%==XP(转到winxp)或其他(转到winseven) rem这是它不起作用的部分。它永远不会进入64位部分 IF %PROCESSOR_ARC

我的问题是,当我使用软件“bat-to-exe converter v1.6”将.bat文件转换为编译后的.exe文件时,无法100%工作。 当我使用.bat时,它可以100%工作,但不能使用.exe

所讨论的.bat文件有两个条件表达式,但处理器体系结构的一个表达式不起作用:

rem第一个是检查它,它的工作100%

如果%SisteMap%==XP(转到winxp)或其他(转到winseven)

rem这是它不起作用的部分。它永远不会进入64位部分

    IF  %PROCESSOR_ARCHITECTURE% == x86 (goto winxp86) else (goto winxp64)
    :winxp86
            echo xp 32 bit
    :winxp64
            echo xp 64 bit
:winseven
    echo seven
    IF  %PROCESSOR_ARCHITECTURE% == x86 (goto winseven86) else (goto winseven64)
    :winseven86
    echo seven 32 bit
    :winseven64
    echo seven 64 bit
rem这是它不工作的另一部分。它永远不会进入64位部分

    IF  %PROCESSOR_ARCHITECTURE% == x86 (goto winxp86) else (goto winxp64)
    :winxp86
            echo xp 32 bit
    :winxp64
            echo xp 64 bit
:winseven
    echo seven
    IF  %PROCESSOR_ARCHITECTURE% == x86 (goto winseven86) else (goto winseven64)
    :winseven86
    echo seven 32 bit
    :winseven64
    echo seven 64 bit

我使用的转换器可能是一个很好的编译器,它还添加了自己的高级命令。试试看。它有32位和64位。

解决方案将%PROCESSOR\u ARCHITECTURE%部分更改为:

@回音

SET ARCHITECT=HELLO reg查询“HKLM\System\CurrentControlSet\Control\Session Manager\Environment”/v

处理器体系结构|查找“拱门”|查找STR/L“86”>NUL

如果%ERRORLEVEL%EQU 0(设置架构师=32位)或其他(设置架构师=64位)

回声%ARCHITECT%

停顿


最有可能的问题是exe是32位可执行文件,因此它无法判断处理器是否为64位。相关问题可能会有所帮助……好的,那么我如何在64位应用程序中编译.bat到.exe?我尝试使用高级bat到exe转换器2.83,但似乎没有显示64位选项。它会自动执行。