【问题标题】:Batch to exe not working when compiled编译时批处理到exe不起作用
【发布时间】:2014-02-28 19:47:14
【问题描述】:

我的问题是,当我使用“Bat to exe converter v1.6”软件将 .bat 文件转换为已编译的 .exe 文件时,无法 100% 工作。 .bat 在我使用时可以 100% 运行,但 .exe 则不行。

有问题的 .bat 文件有两个条件表达式,但处理器架构的那个不工作:

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

IF %SistemaOp% == XP (goto winxp) else (goto winseven)

:winxp

    echo xp

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

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

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

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

【问题讨论】:

  • 问题很可能是 exe 是 32 位可执行文件,因此无法判断处理器是否为 64 位。
  • 可能有帮助的相关问题...stackoverflow.com/questions/1738985/….
  • 好的,那么如何在 64 位应用程序中将 .bat 编译为 .exe?

标签: windows batch-file cmd


【解决方案1】:

很可能你的转换器我使用Advanced bat to exe 这是一个很好的编译器,它还添加了它自己的高级命令。搏一搏。它支持 32 位和 64 位。

【讨论】:

  • 我尝试使用 Advanced bat to exe Converter 2.83,但似乎没有显示 64 位选项。
  • 它会自动完成。
【解决方案2】:

解决方案是将 %PROCESSOR_ARCHITECTURE% 部分更改为:

@echo 关闭

设置建筑师=你好 reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v

PROCESSOR_ARCHITECTURE |找到“拱门” | FINDSTR /L "86" > NUL

IF %ERRORLEVEL% EQU 0(SET ARCHITECT=32 位)ELSE(SET ARCHITECT=64 位)

回显 %ARCHITECT%

暂停

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    • 2015-07-11
    • 2021-12-28
    相关资源
    最近更新 更多