2014-01-23 108 views
2

我正在使用(或嘗試)WinSCP與公共SFTP服務器進行通信以下載不同的數據。完美的場景是我使用SSIS從SFTP下載最新的文件,但是我無法從使用WindowsPowershell運行的winscp.net中獲得示例。腳本文件在SSIS中執行正常但失敗,使用WinSCP

因此,另一種解決方案是運行一個簡單的腳本,下載全部 zip文件。以下是我已經和執行時,該獨立工作(.bat文件):

winscp.exe /console /command "option batch abort" "option confirm off" "open sftp://[email protected]" "get *.zip c:\" "exit"

當我嘗試了執行進程任務中做相同的SSIS,它失敗了非常翔實的錯誤:

The process exit code was "1" while the expected was "0"

我試過從WinSCP.net文檔中的一切(我猜),但沒有任何工作。還在open命令中指定了主機密鑰,但同樣失敗。

這裏的執行進程任務編輯器的截圖: enter image description here

+0

是否與SSIS正在執行有權訪問'FTP'路徑許可的憑證? – praveen

+0

是的,我認爲是這樣......我怎樣才能設定呢? – Pepys

+0

SSIS隨您的憑證一起運行。如果您的憑證有權限,則應執行。否則嘗試打開SSIS使用以管理員身份運行或另一個有權訪問「FTP」路徑的憑證 – praveen

回答

2

您正在嘗試做的WinSCP運行Windows批處理文件。這實際上意味着您要求WinSCP運行WinSCP。這顯然失敗了。你會看到自己,不得不試圖執行命令你問SSIS運行:

"C:\Program Files (x86)\WinSCP\WinSCP.exe" "/script=C:\Program Files (x86)\WinSCP\Script1.bat" 

這大概輸出是這樣的:

Unknown command 'winscp.exe'


你需要移動將Script1.bat中的WinSCP參數轉換爲SSIS參數參數:

/console /command "option batch abort" "option confirm off" "open sftp://[email protected]" "get *.zip c:\" "exit" 

或者讓你Script1.bat(你應該改變的擴展,則)包含的WinSCP命令:

option batch abort 
option confirm off 
open sftp://[email protected] 
get *.zip c:\ 
exit 
+0

耶穌..我知道我正在做一些愚蠢的事情......你是個好人!它現在有效。如果你有時間的話,我會明天再回來再遇到一個問題。然後捐贈即將到來:) – Pepys

+0

如果我想要使用我的腳本文件,而不是我應該將其更改爲.txt,然後以相同的方式指向它在SSIS參數? – Pepys

+1

請更具體地說明你的意思是「我的腳本」和「以同樣的方式爭論」。無論如何,你可以在我的答案中使用這兩種方法。或者第三種選擇,將SSIS指向原來的'Script1.bat'(即調用'winscp.exe')。即在SSIS配置中沒有直接提及'winscp.exe'。 –

相關問題