十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
不可以,bat文件是一种脚本,是可以直接调用系统命令执行的;c语言是需要编译后才能运行的。你可以用一个最简单的hello world试试就知道了
专业成都网站建设公司,做排名好的好网站,排在同行前面,为您带来客户和效益!创新互联建站为您提供成都网站建设,五站合一网站设计制作,服务好的网站设计公司,成都做网站、网站设计负责任的成都网站制作公司!
在程序中使用system()函数
假设bat文件的名称叫a.bat
即:
system("a.bat");
windows操作系统下system () 函数详解(主要是在C语言中的应用)
函数名: system
功 能: 发出一个DOS命令
用 法: int system(char *command);
system函数已经被收录在标准c库中,可以直接调用
直接调用标准库stdlib.h下的system函数.
system("*.bat");
执行成功返回值为0,不成功就返回-1.
如果你的bat里的命令都是一句一行的,没有使用
%%i
之类的,那么用
system(one_line);
一句一句地执行就可以了。
如果
bat里
有循环语句,使用
%%i
之类的
例如
for
%%i
in
(*)
do
ren
%%i
A%%i
就不能使用
system。
----------------
有一个办法可以考虑:
用
C语言
临时写一个
bat文件,立即运行,等几秒删去bat。
#include
stdio.h
#includestdlib.h
#includewindows.h
main()
{
FILE
*fp;
fp=fopen("x.bat","w");
//
建bat文件
fprintf(fp,"echo
off\n");
//内容
fprintf(fp,"for
%%%%i
in
(k*)
do
ren
%%%%i
A%%%%i
\n");
//内容
fclose(fp);
system("start
/wait
/b
x.bat");
//执行
bat
Sleep(2000);
//
等2秒
system("erase
/F
/Q
x.bat");
//
删去bat
return
0;
}
这个bat
把所有
k
开始的文件名,加一前缀
A
%%%%
写入bat
是
%%
噢
【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;
}
如果是读取bat里面的内容
那么按照正常文本文件操作即可, 即fread的时候 以"r"属性打开。
如果是要运行bat
system("bat文件路径及文件名");
这样就可以运行了。