多行文件的 SSIS 表达式生成器(执行进程任务)

SSIS Expression builder for MULTI line file ( Exec Process Task)

我的全局任务是为 WinSCP 进程创建配置文件,它应该是多行的(没有选项)。我尝试使用 CMD/Echo 的表达式生成器来执行此操作。仍然是文件,尝试了所有带有和不带 /C 标志的选项,这对 SSIS cmd 任务至关重要。我可以选择为每一行分配任务,这是按后备计划进行的,但我想看看我是否可以上来学习如何在单个盒子中完成这项工作。我在下面的例子中我可以使用 + " " 组合创建多行表达式,其中第二个引号在新行上。但它仍然不适合整个任务,看起来 CMD /C 需要单行 ??

下图中显示的所有信息:

这是我现在在系统任务中与 WinSCP 可执行文件一起使用的参数。

open ud12345d264d7b8@magdaflyn.sharefileftp.com
option transfer binary
put c:\SFTP\Magda_Members_20190901.csv   "/Business Intelligence Share/Zbignev/"
close
exit

正在创建多行表达式

为了在 SSIS 表达式中添加新行,您必须使用回车符 return 和换行符 \r\n:

"/C Echo line11 \r\n /C Echo " + @[User::Var3] + "Line222 \r\n /C Echo Line3 > Config.dat" 

正在执行多个命令

如果添加新行不起作用,您可以使用 && 运算符来 运行 使用 CMD 的多个命令:

解决方法

如果我上面提到的所有方法都不起作用,请尝试将整个命令保存到批处理文件中,然后从执行进程任务中执行该批处理文件。

您可以使用以下语法写两行:

/c "echo line1 && echo line2" > config.dat

不过,您不需要为 WinSCP 创建配置文件。所有 WinSCP 选项都可以在其命令行上配置。 所以这可能是 XY problem.

虽然不清楚,但您实际上可能正在创建 script file, not a config file. You can instead specify all WinSCP commands on WinSCP command-line using /command switch:

winscp.com /command "open ud12345d264d7b8@magdaflyn.sharefileftp.com" "option transfer binary" "put c:\SFTP\Magda_Members_20190901.csv ""/Business Intelligence Share/Zbignev/""" "close" "exit"

WinSCP GUI 可以generate a command-line sample for you