我需要用 C 编写一些可以在 Windows 上执行 .bat 文件的程序。
当然,我们应该想到 system()
函数。然而,有一个huge issue 。基本上,函数 system()
不会被执行。
我尝试过的事情:
1) 从 Cygwin 终端编译并运行我的代码确实有效,但是,这并不是真正可行,因为我需要将我的程序移动到不同的 PC,并且必须在每台 PC 中安装 Cywind 只是一个坏主意.
2) 我尝试 cd 到 C:\Windows\System32\
但仍然不起作用。
3)我尝试过使用popen()
,但仍然无法工作。
4) 难道是因为我使用的编译器:CLion 上的 Cywin64?但即使我将环境更改为 Windows Subsystem for Linux,它仍然不起作用!
此时,我已经失去了很多脑细胞,几乎已经放弃了。
在尝试了所有方法之后,我认为原因是 system()
会尝试从 /bin/sh
运行命令,而从正常的 cmd 控制台窗口或 system()
完全损坏了。此外,不仅运行批处理,几乎任何其他 cmd 命令都不起作用。哎呀,连 ls
都不起作用。
谷歌搜索根本没有帮助。
我真正想要的是在 C 程序中执行 .bat 文件。基本上就可以了有什么建议吗?
最佳答案
使用ShellExecute()
函数https://learn.microsoft.com/en-us/windows/desktop/api/shellapi/nf-shellapi-shellexecutea
关于c - 如何使用 C 在 Windows 中执行批处理 (.bat) 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55578983/