0

こんにちは、QProcess の制限を回避しました。「|」を使用する場合 その後、プロセスをスキップしますが、「|」が必要です 私のプロセスのキャラクター

exeがあり、「|」が必要だとします コマンドプロンプトが「|」を取るため、引数リストでは機能しません またはとして。したがって、前の部分をスキップします。

e.g: myfile.exe arguments1 | arguments2

上記のコードでは、「|」が表示されます 2 つの引数を分離する引数で、myfile.exe が操作を実行するために必要ですが、'|' が原因です。キャラクターはその前の部分をスキップし、次のように出力します

'arguments2' is not recognized as internal or external, operable program or  batch file

この奇妙な状況をどのように乗り越えますか?「|」が必要です 私の引数リストにはありますが、プロセスはそれを OR として認識します。

実際の現場を教えてください。を使用して .cpio.gz アーカイブを抽出しようとしています

gzip -d -c myarchive.cpio.gz | cpio -i

が原因で | 引数では、次のように出力されます

'cpio' is not recognized as internal or external, operable program or  batch file

しかし、移植された gzip の Linux バイナリを ubuntu で実行すると、Linux 端末が | を認識しないため、思い通りに動作します。またはとして

助けてください ありがとう

4

1 に答える 1

2

QProcess はあなたがやりたいことをやっています: コマンド行全体をシェルに渡します。問題は、2 番目のプログラムがcpioインストールされていないか、Qt 実行可能ファイルの PATH 環境にないことです。

そのコマンド行は、Windows コマンド プロンプト (だと思います) に入力すると機能しますか?

ところで。縦棒の文字はパイプラインであり、.exe への引数ではありません。このコマンド行は、実際には 2 つの別個のプログラムを呼び出します。

于 2012-09-01T19:39:25.587 に答える