我已经阅读了以下指南来设置 SSIS 包以检索位于 SFTP 服务器上的文本文件:
https://www.mssqltips.com/sqlservertip/3435/using-sftp-with-sql-server-integration-services/
总而言之,SSIS 包执行 PSFTP.exe(一种 PuTTY 工具),它采用必要的凭据连接到服务器。它还需要一个在连接后执行的批处理文件。此批处理文件包含检索所需文本文件的命令。从指南开始,它只包含一个用于更改目录的 cmd 命令和一个用于检索文件的 get 命令:
cmd DataDump
get TeleMarketingResults.txt
所有这一切都很好。
当我尝试使此批处理文件逻辑更复杂时,就会出现问题,因为它似乎无法识别基本关键字。例如,我想修改它以检索最新的文件,所以我尝试添加:
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i
echo The most recently created file is %LAST%
但后来我得到这些错误:
psftp: unknown command "for"
psftp: unknown command "echo"
如果我在本地目录中手动执行批处理文件,它就可以工作。仅当将其作为参数传递给 PSFTP.exe 时才会出现此问题。为什么是这样?