qt调用bat后bat通过相对路径调用exe
时间: 2024-09-27 09:06:17 浏览: 54
Qt调用百度地图APImap_APP.7z
在Qt中,当你使用`QProcess`调用一个批处理文件(.bat),该批处理文件如果需要进一步调用另一个.exe文件,并且这个.exe文件是相对路径,那么`QProcess`的子进程仍然会在它启动时的工作目录(working directory)内寻找这个.exe文件。
假设你的.bat文件中包含这样的命令行调用:
```batch
.\auxiliaryExe.exe someArguments
```
这里`.auxiliaryExe.exe`是相对于.bat文件所在位置的。
为了确保子进程能正确找到.exe文件,你应该在创建`QProcess`时设置好工作目录,使其与.bat文件在同一目录,就像之前提到的那样:
```cpp
QProcess process;
process.setWorkingDirectory(QDir::currentPath()); // 设置为当前目录
process.start(".\\yourBatchFile.bat");
```
然后,当.bat文件成功启动并且调用.exe文件时,Qt的子进程中会按预期找到它。
不过,如果你的.exe文件不在同一个目录下,你需要提供完整的路径给.bat文件,让它能够正确定位到目标.exe。
请注意,批处理文件的环境变量和系统路径配置也会影响.exe文件的查找。
阅读全文