3

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

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

谢谢。

4

3 回答 3

2

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

例如:

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

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

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

于 2013-03-17T18:32:37.080 回答
1

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

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

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

于 2013-03-17T18:40:06.527 回答
1

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

@echo off
cd "C:/Program Files/"
nameOfTheProgram.exe
于 2013-03-19T01:05:09.760 回答