2014-04-28 20 views
2

所有輸出我有一個CFEXECUTE標籤有點像下面這樣:返回使用CFEXECUTE

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

我遇到的問題是,並非所有的輸出正在由標籤捕獲。當我直接從命令行運行可執行文件時,它會依次打印幾行文本,但不是同時打印所有文本。我需要檢查最後一行中的文本輸出。

但是,當我使用CFEXECUTE運行可執行文件時,它似乎捕獲輸出的第一行,假定進程已完成,然後返回到運行我的CF腳本。

有沒有其他人遇到過這種情況,如果有的話,是否有任何可能的解決方案?

更多信息:

下面的圖像示出了當執行從命令行運行產生的輸出。黃色部分是CF返回的全部內容。我需要的信息是綠色部分。包含CFEXECUTE標籤的腳本似乎非常快速地運行,並且在返回輸出之前肯定沒有達到完整的超時值。

CMD screen grab

+1

問題不明確。結果變量是否給你提供了與預期結果類似的東西? –

+0

可能是超時。如果你的腳本很慢,10秒可能不足以「捕捉」所有輸出。 –

+0

當我從命令行手動運行腳本時,它會在一秒鐘左右運行,所以十秒鐘應該足夠了。結果變量包含輸出的第一行,但該行不包含我需要的信息。我不確定如何更好地解釋它。當從命令行運行時,隨着操作的進行,輸出將分幾步打印。最終輸出打印包含我需要的有用信息,但ColdFusion似乎只捕獲對我無用的打印輸出。 – Michael

回答

1

運行大量的測試後,我已經找到了答案。

如果要掃描的文件的路徑包含空格,則必須在cfexecute標記的參數參數內使用雙引號,例如,

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

如果文件路徑不正確/不存在這個特定的可執行文件,似乎不返回任何有用的錯誤文本,但只返回黃色上面的圖片中突出顯示的行。