![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
关于C语言调用BAT文件的问题
单独运行批处理文件时没有问题,是打开一个bmp文件,startc:\a.bmp。但是用C语言调用时,用的system("XX.bat");,然后运行生成的EXE时,却说b...
单独运行批处理文件时没有问题,是打开一个bmp文件,start c:\a.bmp。但是用C语言调用时,用的system("XX.bat");,然后运行生成的EXE时,却说bad command or file name。。这个怎么解决。而且如何让批处理文件后台运行?XP系统
展开
5个回答
展开全部
【system()函数】
system 是执行一条命令(系统path下搜索到可执行程序),你不能直接给一个文件路径让它去执行
windows 命令行程序中 默认会把文件 送给 explorer.exe 去执行 ShellExecute 或者 ShellExecuteEx
【解决方法】所以你必须把执行 *.bat 或者 *.cmd 写成命令形式:
system("cmd.exe /c \"D:\\test.bat\"");
system("explorer.exe \"D:\\test.bat\"");
【附】先写一个批处理文件 test.bat 放到路径 d:\ 下
/*
* d:\test.bat
*
* @echo hello cmd
* @pause
*
*/
然后 运行一下 C/C++代码(已在 mingw gcc 下 调试通过)
#include <stdlib.h>
int main(int argc, char* argv[]) {
//批处理命令中加上 pause 暂停看运行效果
system("cmd.exe /c \"D:\\test.bat\"");
system("explorer.exe \"D:\\test.bat\"");
//system("pause");
return 0;
}
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用shellExecute吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
bmp不是图片吗?
更多追问追答
追问
嗯,使用批处理文件打开一个图片,单独运行时能打开,但是先用C调用这个批处理,就打不开了..说错误..不知道怎么搞的
追答
那个bat的路径加进去啊改成c:\xx.bat
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询