文件名、目录名或卷标语法不正确
The filename, directory name, or volume label syntax is incorrect system call from qt creator c++
当我从命令行运行命令C:My ProgramsCPU AnalysisscriptsruinIODump.bat
时,命令运行良好,但是当我从qt creator中运行命令时:
system("""C:\My Programs\CPU Analysis\generateSanity_Scripts\runIODump.bat"" ""C:/My Programs/CPU Analysis/iodump/065901_iodump.txt""")
我得到错误:The filename, directory name, or volume label syntax is incorrect.
…
我试过直接通过system()命令在.bat文件中运行命令,我试过改变引号,我试过使用转义字符,但我一直得到同样的错误。我怎么能得到。bat文件从qt creator运行?我看了其他类似的问题,但没有一个回答我的问题。
你的问题是分隔符,正如MCDC所说。
我建议使用QProcess
和QDir::toNativeSeparators
,例如:
const QString app = QDir::toNativeSeparators("C:/My Programs/CPU Analysis/generateSanity_Scripts/runIODump.bat");
const QString params = QDir::toNativeSeparators("C:/My Programs/CPU Analysis/iodump/065901_iodump.txt");
QProcess process;
QObject::connect(&process, SIGNAL(error(QProcess::ProcessError)), this, SLOT(myError(QProcess::ProcessError)));
QObject::connect(&process, SIGNAL(stateChanged(QProcess::ProcessState)), this, SLOT(myState(QProcess::ProcessState)));
QObject::connect(&process, SIGNAL(finished(int)), this, SLOT(myEnd(int)));
process.start(app, QStringList() << params);
Qprocess是Async,得到QObject::connect
的结果(见示例)
这将避免"分隔符"的问题
system(""C:\My Programs\CPU Analysis\generateSanity_Scripts\runIODump.bat" "C:\My Programs\CPU Analysis\iodump\065901_iodump.txt"");
我认为你有太多的引号和一些错误的斜杠
相关文章:
- 使用2个键的cpp-stl::优先级队列排序不正确
- 正弦级数方程计算不正确
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 密码登录程序将永远循环并显示不正确的结果
- 在C++中返回不正确的楼层函数值
- 形状对象的旋转和缩放不正确C++
- C++ 读取文件读取文件不正确
- 关于类的 Python 文档 - 对C++的引用不正确
- 特征 LLT 模块给出不正确的结果?
- glibcxx STL 在实现 std::valarray::sum() 时是否不正确?
- 如果语句逻辑不正确
- 来自逆 vp 矩阵和相机位置的光线方向不正确
- 不正确的操作数类型 MSVC
- 数组填充了不正确的值
- 我是否不正确地集中了这些字符数组?
- 为什么除非我使用 cout,否则我的值不正确?
- SQLite 语法在 "S" 附近不正确
- C++状态机,继承了具有语法不正确的成员值的类
- 我的代码语法不正确的地方
- QODBCResult::exec: 无法执行语句:"[Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误