Пример для Windows:
qDebug() << "Start --- ";
QProcess P;
QString strings("String4\nString2\nString3\nString1"); // Это подаем на STDIN процессу
P.setReadChannelMode(QProcess::MergedChannels);
P.start(tr("cmd.exe"),QStringList() << tr("/c")
<< QCoreApplication::applicationDirPath()+"/StartHidden.cmd"
<< tr("Argument") // Это аргумент командной строки процесса
);
P.write(strings.toLocal8Bit());
P.closeWriteChannel();
P.waitForFinished();
QTextCodec *Cp866 = QTextCodec::codecForName("IBM 866");
qDebug() << Cp866->toUnicode(P.readAllStandardOutput());
qDebug() << "Stop --- ";
пример запускаемого командного файла StartHidden.cmd:
@echo off
sort
echo Result: %1