首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法用QProcess执行scp

无法用QProcess执行scp
EN

Stack Overflow用户
提问于 2022-02-07 16:54:10
回答 1查看 190关注 0票数 0

我正在尝试-修改-从/向远程主机发送文件。顺便说一下,这是Windows 10。

我已经将代码简化为更容易:

代码语言:javascript
复制
#include <QCoreApplication>
#include <QProcess>

bool getFile(QStringList &logTextList)
{
    QProcess scp;

    scp.start( "scp", QStringList() );
    if( scp.waitForStarted(1000) )
    {
        if( scp.waitForFinished(10000) == true )
        {
            if( scp.exitCode() == 0 )
            {
                logTextList.append(scp.readAllStandardError());
                return true;
            }
        }
        else
            logTextList.append("Not finished");
    }
    else
        logTextList.append( "Not Started" );
    logTextList.append( scp.readAllStandardError() );
    logTextList.append( scp.readAllStandardOutput() );
    logTextList.append( QString("Exitcode = %1\n").arg(scp.exitCode()) );
    return false;
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QStringList logTextList;

    getFile(logTextList);

    return a.exec();
}

QProcess从不以"scp“甚至"dir”开头(记住,它是windows 10主机),而是以"cmd“或"ping”命令工作。还试图执行"cmd“并写入stdin "scp”。但是命令提示符报告说,"scp“是一个未知的命令。

编辑刚刚发现"dir“不是外部可执行文件。因此,需要在"cmd.exe“中执行。而且起作用了。但是"scp“仍然没有。

有线索吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-02-08 09:05:59

当您按名称生成进程时,将在PATH环境变量中的所有路径中搜索它,如果它不在那里,它将无法工作。

在启动应用程序之前,可以通过向PATH临时或永久添加scp路径来修复它。

也可以使用完全路径生成进程:

代码语言:javascript
复制
QString command = "scp";
#ifdef Q_OS_WIN
command = "C:\\Program Files\\Git\\usr\\bin\\scp.exe";
#endif
scp.start(command, {});

或者您可以使用修改后的环境通过shell生成scp:

代码语言:javascript
复制
QProcess scp;
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
QString PATH = env.value("PATH") + ";C:\\msys64\\usr\\bin;C:\\Program Files\\Git\\usr\\bin";
env.insert("PATH", PATH);
scp.setProcessEnvironment(env);
scp.start("cmd",{"/c","scp"});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71022300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档