我需要用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文件。基本上是。有什么建议吗?
答案 0 :(得分:1)
使用ShellExecute()
函数https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/nf-shellapi-shellexecutea
答案 1 :(得分:0)
ShellExecute()
不起作用。 System()
也发生了同样的事情。
我的解决方案是下载Microsoft Visual Studio,并在VS环境中运行Clion(需要解决某些兼容性问题)。