问题描述
|
我创建了一个从批处理文件中获取变量并将其用于执行的程序包。
我从批处理文件发送为:
退出%输出%
并设置Execute processtask的Output,但无法进一步访问它。
请帮忙。!
解决方法
我认为您应该回显变量%Output%,而不是与Exit命令一起使用。
下面的示例演示如何将字符串从批处理文件传递到SSIS:
屏幕快照#1显示了此示例中使用的批处理文件的内容。
屏幕截图2显示了执行流程任务配置。变量BatchOutput的类型为字符串。
屏幕快照#3显示了在批处理执行任务之后添加了脚本任务ѭ0。
在脚本任务中,我将在脚本任务代码部分下显示代码,以显示变量BatchOutput的内容。
执行任务应显示变量的内容,该内容实际上是批处理文件中回显的文本。请参阅屏幕截图4。
脚本任务代码:(使用下面给出的代码替换脚本任务中的Main()方法)
可以在ѭ1中使用的VB Main()方法代码
Public Sub Main()
Dim varCollection As Variables = Nothing
Dts.VariableDispenser.LockForRead(\"User::BatchOutput\")
Dts.VariableDispenser.GetVariables(varCollection)
MessageBox.Show(varCollection(\"User::BatchOutput\").Value.ToString())
Dts.TaskResult = ScriptResults.Success
End Sub
只能在SSIS 2008 and above
中使用的C#Main()方法代码
。
public void Main()
{
Variables varCollection = null;
Dts.VariableDispenser.LockForRead(\"User::BatchOutput\");
Dts.VariableDispenser.GetVariables(ref varCollection);
MessageBox.Show(varCollection[\"User::BatchOutput\"].Value.ToString());
Dts.TaskResult = (int)ScriptResults.Success;
}
希望能有所帮助。
屏幕截图1:
屏幕截图2:
屏幕截图3:
屏幕截图4: