【问题标题】:Convert .bat to .exe without depending on cmd.exe将 .bat 转换为 .exe 而不依赖于 cmd.exe
【发布时间】:2013-08-21 03:19:19
【问题描述】:

我有一个 bat 每 15 秒执行一次文件夹中的所有文件。我需要将其设置为 .exe 才能将其作为隐藏应用程序运行。 我已经用bat to exe转换器和其他程序将它转换为.exe,我看到在所有这些程序中,当我执行.exe时,例如Load.exe,同时自动启动一个cmd.exe。如果我杀死 Load.exe,它仍然会继续运行,直到我杀死 cmd.exe。

那么,我可以在不依赖 cmd.exe 的情况下从 .bat 制作 .exe 吗?

【问题讨论】:

  • 我看到您已将其标记为 C++。如果您知道该语言,请使用它将批处理文件移植到 exe。 #include <iostream> 然后从那里出发。
  • 您可以使用system 函数制作调用系统的C++ 程序。我不知道这是否取决于 cmd.exe。
  • 批处理文件有什么作用?这将决定它翻译的容易(或困难)。但它当然可以用 C 或 C++ 编写。
  • 批处理每 15 秒执行一次确定文件夹中的所有文件。我用它来远程向其他计算机发送“订单”,然后他们通过这个蝙蝠在本地执行这些订单。我不擅长 C++,所以我问这是否可行,因为我有其他进程,不断杀死 cmd.exe,这就是为什么我需要将其设为 .exe
  • 您计算机的运行环境听起来很可怕。也就是说,你想要的在 C++ 中是可行的,但你必须学习 C++ 和一点 Windows API 才能完成工作。不要使用system(),因为它只是调用cmd.exe。您必须使用 Windows 提供的与 forkexecv 对应的任何内容。

标签: c++ batch-file cmd converter


【解决方案1】:

简短但正确的答案:不,你不能。

【讨论】:

    【解决方案2】:

    我不知道它是否依赖于CMD(可能不),但是你可以使用C++函数系统来执行你的.bat文件的每一行。

    这样做:

    #include <stdlib.h>
    
    int main()
    {
      system("<batch command goes here>");
      return 0;
    }
    

    同时,您可以将.bat文件的每一行添加到系统函数中,并作为CPP/C程序执行。

    【讨论】:

    • 感谢您的帮助。但我试过了,它也启动了 cmd.exe
    • 如果这不起作用,那么恐怕唯一可能做到这一点的方法是了解您想要实现的每个批处理命令正在做什么并编写一个独立的 C 代码它。
    • 谢谢。最后就是我所做的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 2019-05-28
    • 2016-02-17
    相关资源
    最近更新 更多