C语言中怎样调用批处理文件?

C语言中怎样调用批处理文件?,第1张

你的认知是错的,让我来纠正你

#include

#include

int

main(void)

{

system("start

test.bat")

//test.bat是要调用的bat文件。

}

首先俩头文件,你的代码风格很糟糕;然后把你的c程序芦正和批处理程序放在同一目录下。

system是调用一个dos指裂哗令,肆哗行

你到底学的什么←_←

要在批处理中调用exe程序并将参数传递给其他文件,可以使用以下步骤:

在批处理文件中使用start命令调用exe程序,例如:

sql

start "My Program" "C:\Program Files\MyProgram\MyProgram.exe"

这会启动名为"My Program"的窗口,并执行"C:\Program Files\MyProgram\MyProgram.exe"可执行文件。

如果要将参数传递给exe程序,可以在exe程序路径后面加上参数,例如:

sql

start "My Program" "C:\Program Files\MyProgram\MyProgram.exe" arg1 arg2 arg3

这会将三个参数arg1、arg2和arg3传递给MyProgram.exe程序。

在exe程序中,可以使用命令行参数获取批处理传递的参数。在C++中,可以使用main函数的参数来获取这些参数,例如:

c++

int main(int argc, char* argv[]){    // 获取参数个数

   int argCount = argc   // 获取第一个参数(即argv[0]为程序名称,argv[1]开始才是传递的参数)

   char* arg1 = argv[1]   // 获取第二笑哪个参数

 乎升判  char* arg2 = argv[2]   // 获取第三个参数

   char* arg3 = argv[3]   // ...}

这样就可以将批处理传递的参数在exe程序中使用了。

需要注岁改意的是,命令行参数的类型都是字符串类型,因此需要根据实际情况进行转换。

【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

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12494571.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-25
下一篇2025-08-25

发表评论

登录后才能评论

评论列表(0条)

    保存