我创建了一个包,它从批处理文件中获取一个变量并将其用于执行。将批处理文件中的变量传递给SSIS包
我从批处理文件发送它:
退出%输出%
和执行processTask的设置输出,但不能够进一步访问。
请帮忙。
我创建了一个包,它从批处理文件中获取一个变量并将其用于执行。将批处理文件中的变量传递给SSIS包
我从批处理文件发送它:
退出%输出%
和执行processTask的设置输出,但不能够进一步访问。
请帮忙。
我觉得你应该echo变量%Output%而不是用退出命令。
以下示例显示了如何从批处理文件字符串传递给SSIS:
Success
在批处理执行处理任务后添加。脚本任务代码:(使用下面给出的代码替换主要在你的脚本任务()方法)
VB Main()方法可以在使用代码SSIS 2005 and above
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
C# Main()方法的代码只能用于SSIS 2008 and above
。
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:
非常感谢您的帮助... 但看不到任何屏幕截图在这里... – Amruta 2011-06-02 06:13:18
是的!它的工作。再次感谢你Siva。 – Amruta 2011-06-02 11:19:58
我无法通过相同的代码执行另一个批处理文件... 你能找出批处理文件中的错误? 批处理文件是: @echo OFF DTEXEC/F “d:\ CHORD_LOAD_PACKAGE \ CHORD_LOAD_PACKAGE \ LOAD_SECURITY.dtsx”/ REPORTING E> d:\ Loagfile.log 如果%ERRORLEVEL%== 1套%OUTPUT%= “S” 如果%ERRORLEVEL%!= 1套%OUTPUT%= “F” 回声 “EXCEL” 出口0 – Amruta 2011-06-06 09:22:35
这是很难理解你的问题是什么。你必须更好地解释你的问题。你如何调用你的bat文件。退出是退出当前命令执行的命令,是你想要的吗? – 2011-05-26 09:01:59