[英]coldfusion 8 and 2016: CFEXECUTE not returning result/error
我在瀏覽器中得到的只是一個空白屏幕。 如果我不使用IsDefined,則會在頁面中收到錯誤消息,指出該變量不存在。
如果我拼錯了一個命令(例如:使用/ bin / bsh而不是/ bin / bash),則會出現異常,指出CF無法找到該程序。 所以它似乎正在工作。 我只想檢查它是否真的在運行。
這是我的代碼:
------
<cfexecute name="/bin/ls" arguments=" -la /" errorVariable="error" variable="result"></cfexecute>
<cfif IsDefined("result")>
<cfdump var="#result#">
</cfif>
<cfif IsDefined("error")>
<cfdump var="#error#">
</cfif>
<cfexecute name="/bin/bash" arguments=" -c '/bin/ls -la /'" errorVariable="error" variable="result"></cfexecute>
<cfif IsDefined("result")>
<cfdump var="#result#">
</cfif>
<cfif IsDefined("error")>
<cfdump var="#error#">
</cfif>
您需要在cfexecute
上指定一個timeout
,以便順序獲取有效的結果/錯誤。
默認timeout
為0
,這是非阻塞的,這意味着您的命令正在異步執行。 這意味着您不會立即得到結果。
我不確定對於Adobe,“非阻塞”是指variable
和error
屬性被完全忽略還是最終被設置。 如果您很好奇,可以將cfsleep
並找出來,請不要進行生產。 :)
您必須指定要執行的應用程序的絕對路徑。在Windows上,請指定擴展名,例如C:\\ myapp.exe。
我已經使用cfexecute運行了我的sqlCMD,在這里我已經傳遞了MS sql服務器的絕對路徑。
<cfexecute name="C:\Program Files\Microsoft SQL Server2016\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" arguments=" -S localhost -U sa -P sqlPwd@12## -i" timeout="0" errorFile="#logsDir#/#TableSqls.name#_error.txt">
</cfexecute>
希望對您有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.