【问题标题】:Control cmd prompt using C使用 C 控制 cmd 提示符
【发布时间】:2013-03-17 18:26:18
【问题描述】:

我正在尝试编写一个 C 程序来控制 windows cmd 提示符。例如,打开 cmd 提示符,进入特定目录(例如:C:/Program Files/...),然后在该文件夹中运行 exe。

这可以用 C 编程来完成吗?如果是这样,怎么做?到目前为止,我只知道 system("cmd.exe") 打开 cmd 提示符。我将如何进一步与 cmd 提示进行交互?

谢谢。

【问题讨论】:

  • 您知道,您实际上并不需要使用命令提示符作为代理来执行这些操作...Windows 有 API 可以执行此操作,请查找。

标签: c windows cmd command-prompt


【解决方案1】:

这不会很便携。 system 调用通常不受欢迎,但为了回答您的问题,system 函数确实适用于您打算使用的命令。

例如:

system("notepad.exe my_file.txt");
system("del my_file.txt");
system("pause");

这将在记事本中打开一个名为 my_file.txt 的文件,将其删除并暂停程序。

同样,这不是便携式的。它特定于 Windows 操作系统。 事实上,我什至不认为它可以在所有 Windows 版本上运行。 (不要引用我的话。)

【讨论】:

    【解决方案2】:

    关于主题:您可以通过“CreateProcess”启动 cmd,并通过窗口消息(“SendMessage”)发送键输入。

    我认为您应该重新考虑您希望如何完成工作。命令提示符不是一种在 Windows 上执行操作的 API 基础。它是一种无需编写自己的程序即可做事和获取信息的工具。如果您编写自己的程序,则应直接使用 WinAPI。

    要开始使用,您可以 google “winapi [whatever you want to do]”。在您的示例“winapi start executable”中,您将找到“CreateProcess”和“ShellExecute”等函数。

    【讨论】:

      【解决方案3】:

      也许这里有一个误解(如果是这样,我很抱歉),但是“与cmd提示符进一步交互”的标准方式是通过命令行命令,而标准方式是“编写程序来控制windows cmd”提示”是通过批处理文件。例如,以下批处理文件打开 cmd 提示符(通过在资源管理器中双击执行时),转到特定目录(C:/Program Files/)并在该文件夹中运行 exe:

      @echo off
      cd "C:/Program Files/"
      nameOfTheProgram.exe
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-04
        • 1970-01-01
        • 2012-11-23
        • 1970-01-01
        • 2021-10-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多