我想从一个程序(exe 文件)中执行一个批处理文件。我通常在程序(exe 文件)执行时创建批处理文件。并将 execl("START","",NULL);
该函数正在调用批处理文件,但不幸的是新的命令窗口出现了,因为 execl 函数是进程启动并解析为“cmd.exe/k” .
能否请您分享调用在后台执行批处理文件的函数的最简单方法,如果可能请分享代码片段。
最佳答案
不要使用start
,而是使用cmd/c
。
预计到达时间:正如 Chris Jester-Young 在评论中指出的那样,这看起来像
execlp("cmd", "/c", batchfile, static_cast<char*>(0))
在您的代码中。
预计到达时间 2:看起来您甚至不需要那里的 cmd
。仅批处理文件作为命令就足够了。由于 start
有效并且 start
是 cmd.exe
的内置命令,因此必须 cmd
正在运行以使您的原始调用生效。所以只要像执行程序一样执行批处理文件,这就足够了。
关于c++ - 从程序执行批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177112/