如何在Windows中使用C执行批处理(.bat)文件

时间:2019-04-08 17:44:52

标签: c windows batch-file cygwin clion

我需要用C编写可以在Windows上执行.bat文件的程序。

自然,应该想到system()函数。但是,有一个huge issue。基本上,功能system()不会执行。

我尝试过的事情:

1)从Cygwin终端编译并运行我的代码确实可以,但是,这并不是真正可行的,因为我需要将程序移至另一台PC,并且必须每次都安装Cywind只是一个坏主意

2)我尝试将CD切换到C:\Windows\System32\,但仍然无法正常工作。

3)我尝试使用popen(),但仍然无法正常工作。

4)可能是因为我使用的编译器:CLion上的Cywin64吗?但是,即使我将环境更改为Linux的Windows子系统,它仍然无法正常工作!

在这一点上,我失去了很多脑细胞,几乎已经放弃了。

尝试了所有内容之后,我认为原因是system()试图从/bin/sh运行命令(从普通cmd控制台窗口运行时不可用),或者是system()完全被打破了。另外,不仅运行批处理,几乎所有其他cmd命令也将不起作用。哎呀,即使ls也不起作用。

Google搜索完全没有帮助。

我真正想要的只是在C程序中执行.bat文件。基本上是。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

ShellExecute()不起作用。 System()也发生了同样的事情。

我的解决方案是下载Microsoft Visual Studio,并在VS环境中运行Clion(需要解决某些兼容性问题)。