关于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系统 展开
 我来答
flameleo11
推荐于2018-02-28 · TA获得超过5343个赞
知道大有可为答主
回答量:1943
采纳率:50%
帮助的人:991万
展开全部

【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;
}
吉祥二进制
高粉答主

推荐于2016-01-02 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84578

向TA提问 私信TA
展开全部
.bat文件" highlight="true">bat文件一般是指windows平台的批处理文件

在C语言中调用批处理文件,一般有两种方式:
1、使用system()函数,直接调用。示例代码如下:

  #include <stdlib.h>
  main()
  {
  system("test.bat"); //test.bat是要调用的bat文件。
  }

2、使用Windows相关的API函数来调用 ,比如CreateProcess()、CreateThread()、ShellExecuteEx()等API函数直接创建进程或线程来运行批处理文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2004sinbad
2013-08-10
知道答主
回答量:33
采纳率:0%
帮助的人:21.8万
展开全部
用shellExecute吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
进分法
2020-12-25 · 一个提供信息与纪律的空间
进分法
采纳数:1 获赞数:27

向TA提问 私信TA
展开全部

win+r

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c281b4c
2013-08-10 · TA获得超过2293个赞
知道大有可为答主
回答量:2382
采纳率:50%
帮助的人:1044万
展开全部
bmp不是图片吗?
更多追问追答
追问
嗯,使用批处理文件打开一个图片,单独运行时能打开,但是先用C调用这个批处理,就打不开了..说错误..不知道怎么搞的
追答
那个bat的路径加进去啊改成c:\xx.bat
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式