
#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
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)