3

次のようなCFEXECUTEタグがあります。

<cfexecute timeout="10" 
variable="result" 
name="#PathToExecutable" 
arguments="#myArgs#">
</cfexecute>

私が抱えている問題は、すべての出力がタグによってキャプチャされているわけではないということです。コマンドラインから実行可能ファイルを直接実行すると、複数行のテキストが次々に出力されますが、すべてが同時に出力されるわけではありません。最後の行のテキスト出力を調べる必要があります。

しかし、それを使用して実行可能ファイルを実行するCFEXECUTEと、出力の最初の行がキャプチャされたように見えます。プロセスが終了したと想定してから、CF スクリプトの実行に戻ります。

他の誰かがこれに遭遇しましたか?もしそうなら、解決策はありますか?

より詳しい情報:

以下の画像は、コマンド ラインから実行可能ファイルを実行したときに生成される出力を示しています。黄色のセクションは、CF によって返されるすべてです。必要な情報は緑色のセクションです。タグを含むスクリプトはCFEXECUTE非常に高速に実行されているようで、出力が返される前に完全なタイムアウト値に達していないことは明らかです。

CMD スクリーン グラブ

4

1 に答える 1

1

多くのテストを実行した後、私は答えを見つけました。

スキャンするファイルへのパスにスペースが含まれている場合は、cfexecuteタグの引数パラメーター内で二重引用符で囲む必要があります。

<cfexecute timeout="10" variable="result" name="#pathToExe#" arguments='"#pathToScan#"'></cfexecute>

ファイル パスが正しくない/存在しない場合、この特定の実行可能ファイルは有用なエラー テキストを返さず、上の画像で黄色で強調表示された行を返すだけのようです。

于 2014-04-29T12:28:07.373 に答える