zoukankan      html  css  js  c++  java
  • QProcess调用外部程序并带参执行

    想借助git-bash在windows上使用Linux下的find,grep等命令查找文件中的宏定义。
    但在实际操作过程中发现通过QProcess调用git-bash启动git-bash时默认带了参数--login -i,导致执行命令时grep好像将grep命令附加到了--login -i后面报了grep无权限的问题。

    后续直接找到了grep for windows,GNU下的grep命令的windows版本执行文件,并找到其执行依赖的dll库,放在执行文件目录下,实现了QProcess通过grep.exe进行字符串匹配后输出匹配内容到 预先通过setStandardOutputFile重新指定指定的标准输出文件中。

    需要额外注意的是相关路径中的和//表示,以及命令结尾的" "

    QProcess process(0);
    process.setStandardOutputFile(QString("E:\x.txt"), QIODevice::Append);
    QStringList result;
    for (int k = 0; k < files.size(); k++)
    {
    	QString program = "grep.exe -E ";
    	program.append(""^\s*#if|^\s*#ifdef|^\s*#ifndef|^\s*#elif"");
    	program.append(" ");
    	QString str = files.at(k);
    	str.replace(QString("/"), QString("//"));
    	program.append(str);
    	program.append("
    ");
    	process.start(program);
    	process.waitForStarted();
    	process.waitForFinished();
    }
    
  • 相关阅读:
    jps命令
    Collection
    java.lang包中异常
    final关键字
    JVM运行时数据区域
    String详解
    哈希码
    Java虚拟机
    垃圾收集器与内存分配策略
    solr简介
  • 原文地址:https://www.cnblogs.com/kuikuitage/p/12854124.html
Copyright © 2011-2022 走看看