使用CFEXECUTE返回所有输出

时间:2014-04-28 15:56:07

标签: coldfusion exe coldfusion-10

我有CFEXECUTE标签,如下所示:

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

我遇到的问题是并非所有输出都被标记捕获。当我直接从命令行运行可执行文件时,它会一个接一个地打印出几行文本但不是同时打印出来。我需要检查最后一行的文本输出。

但是当我使用CFEXECUTE运行可执行文件时,它似乎捕获了第一行输出,假设该过程已完成,然后返回运行我的CF脚本。

是否还有其他人遇到过这种情况?如果有,是否有任何可能的解决方案?

更多信息:

下图显示了从命令行运行可执行文件时产生的输出。黄色部分是CF返回的全部内容。我需要的信息是绿色部分。包含CFEXECUTE标记的脚本似乎运行得非常快,并且在返回输出之前肯定没有达到完整的超时值。

CMD screen grab

1 个答案:

答案 0 :(得分:1)

经过大量测试后,我找到了答案。

如果要扫描的文件的路径包含空格,则必须在cfexecute标记的arguments参数中使用双引号,例如

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

如果文件路径不正确/不存在,则此特定可执行文件似乎不会返回任何有用的错误文本,而只返回上图中黄色突出显示的行。