我需要在我們的網絡上運行遠程腳本來導入文件。如果我手動運行它,我已經設置了plink並根據需要進行工作。無法使用CFThread,CFExecute和Plink觸發腳本
砰砰名@的LocalServer -ssh -i myKey.ppk /home/here/scriptName.sh
我們正在編寫中的ColdFusion代碼,以便這將在CFThread使用CFExecute運行。 當我通過代碼運行它時,cfexecute不會出錯,它只是不會觸發腳本。
在我的研究中,我發現有人說cfexecute與參數字符串有一些問題,更好的主意是創建批處理文件並使用cfexecute運行批處理文件。
所以我創建了一個批處理文件。 import.bat
C:\inetpub\wwwroot\myapp\plink\plink.exe [email protected] -ssh -i myKey.ppk /home/here/scriptName.sh)
,如果我再次手動運行該批處理文件它的工作原理。
import.bat
,但如果我通過cfexecute運行它,它什麼都不做。
測試cfexecute我有它運行兩個命令,第一個我需要工作,第二個測試。第二個按需要工作。第一個沒有錯誤的屏幕或日誌文件。它的確如果我輸入了錯誤的語法。第二個是根據需要寫入文件。
(下面的代碼)
starting
<cfoutput>
<cfexecute name = "C:\inetpub\wwwroot\myapp\plink\import.bat" errorfile="C:\inetpub\wwwroot\myapp\logs\#timeformat(now(),"HHMMSS") #.log" ></cfexecute>
<cfexecute name = "C:\WinNT\System32\netstat.exe"
arguments = "-e"
outputFile = "C:\Temp\#timeformat(now(),"HHMMSS") #.txt"
timeout = "1">
</cfexecute>
</cfoutput>
the end
<cfabort>
任何想法,將不勝感激...
感謝, 布賴恩
您是否嘗試過運行的是砰砰命令或批處理文件作爲ColdFusion服務運行的用戶登錄?聽起來像是一個許可問題。 – 2014-09-30 01:16:15
你可能也想運行'cmd c:\ path \ to \ batchfile.bat args',因爲我不確定cfexecute會執行那樣的批處理文件。我認爲你需要運行命令解釋器並告訴運行一個批處理文件。 – barnyr 2014-09-30 05:07:18
使用errorVariable =「foo」將錯誤返回給變量,然後輸出foo。 – 2014-09-30 11:09:08