使用C语言控制cmd命令提示符

3
我正在尝试编写一个控制Windows命令提示符的C程序。例如,打开命令提示符,进入特定目录(例如:C:/Program Files/...),然后在该文件夹中运行一个exe文件。
这可以使用C编程完成吗?如果可以,如何实现呢?到目前为止,我只知道使用system("cmd.exe")打开命令提示符。如何进一步与命令提示符交互?
谢谢。

你知道吗,其实你不需要使用命令提示符作为代理来完成这些事情... Windows有API可以做到,去查一下吧。 - StoryTeller - Unslander Monica
3个回答

2
这样做并不是很可移植。虽然system函数经常被人们所诟病,但是为了回答你的问题,它确实适用于你想要使用的命令。
例如:
system("notepad.exe my_file.txt");
system("del my_file.txt");
system("pause");

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

再次强调,这不是可移植的。它只适用于Windows操作系统。 实际上,我甚至认为它不能保证在所有版本的Windows上都能正常工作。 (请勿引用我说的话。)


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

1

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

我认为您应该重新考虑您想要完成任务的方式。命令提示符不是在Windows上执行任务的API基础,它是一种工具,用于在不编写自己的程序的情况下执行任务并获取信息。如果您编写自己的程序,您应该直接使用WinAPI。

要开始,请搜索“winapi [您想要完成的任务]”。在您的示例中,“winapi start executable”,您将找到像“CreateProcess”和“ShellExecute”这样的函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接