Я думаю, что вы должны echo переменная% Output% вместо использования с Exit командой.
В следующем примере показано, как передать строку из пакетного файлав SSIS:
- Снимок экрана # 1 показывает содержимое пакетного файла, использованного в этом примере.
- Снимок экрана # 2 показывает Выполнить процессную задачу конфигурация.Переменная BatchOutput имеет тип string.
- Снимок экрана # 3 показывает, что Задача сценария
Success
добавляется после пакета Выполнить процессЗадача. - В задаче «Сценарий» у меня есть код, показанный в разделе Код задачи сценария , для отображения содержимого переменной BatchOutput .
- При выполнении задачи должно отображаться содержимое переменной, которая фактически является текстом, отображаемым из командного файла.см. снимок экрана # 4 .
Код задачи сценария: (Используйте приведенный ниже код для замены метода Main () в задаче сценария)
VB Основной () код метода, который можно использовать в 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: