Я думаю, что вам нужно создать переменную, которая будет содержать путь к папке и имя исполняемого файла для оценки в качестве выражения.Затем вам нужно присвоить эту переменную, которая оценивается как выражение, свойству Executable Execute Process Task
.Кроме того, вам необходимо иметь допустимый путь к исполняемому файлу во время разработки.
Это грубый пошаговый пример, который показывает, как вы можете передать переменную свойству Executable свойства Execute Process Task.Пример был создан с использованием служб SSIS 2008 R2, а также использует три файла .bat для иллюстрации функциональности.Несмотря на то, что пример приведен в SSIS 2008 R2, логика должна быть применима к SSIS 2005.
Создайте три файла .bat, а именно Process_0.bat, Process_1.bat и Process_2.bat.Смотрите скриншот # 1 .Заполните их командами эха, как показано на скриншотах # 2 - # 4 .
Создайте пакет служб SSIS.В начале я назвал пакет в формате YYYYMMDD_hhmm, после которого SO означает переполнение стека, затем идентификатор вопроса SO и, наконец, описание.Это для меня, чтобы легко отослать это позже.См. Снимок экрана # 5 .
Создайте следующие переменные: См. Снимок экрана # 6 .
ExecutableFileName - эта переменная имеет тип string.Он будет содержать имя исполняемого файла.
ExecutableFolder - Эта переменная имеет тип string.Он будет содержать путь к папке исполняемого файла.
ExecutableFilePath - эта переменная имеет тип string.Не вводите никаких значений для этой переменной.Это будет выражение, которое объединяет переменные ExecutableFolder и ExecutableFileName для генерации полного пути к файлу.Смотрите скриншот # 7 .Выберите переменную и нажмите F4, чтобы открыть окно свойств.Установите для EvaluateAsExpression значение True
и для параметра Expression - @[User::ExecutableFolder] + @[User::ExecutableFileName]
ExecutableOutput - эта переменная имеет тип string.Он будет хранить выходное значение исполняемого файла.В этом случае значение отражается в файлах .bat.
В пути потока управления пакета поместите задачу «Выполнить процесс» и задачу «Сценарий», как показано на снимке экрана # 8 .
Настройте задачу «Выполнить процесс», как показано на скриншоте # 9 - # 11 .В разделе «Задача» в разделе «Процесс» необходимо указать путь к исполняемому файлу для начальной настройки.Кроме того, укажите StandardOutputVariable (это для этого примера).В разделе «Выражения» переопределите путь к исполняемому файлу, указав переменную @ [User :: ExecutablePath]
В задаче «Сценарий» замените метод Main, как показано на снимках экрана # 12 - # 13 .
Выполнить пакет.Вы должны получить вывод, как показано на скриншоте # 14 .Он показывает, что файл .bat Process_0.bat был выполнен с выводом "Process 0"
.
Теперь измените значение переменной ExecutableFileName на Process_1.bat.Не вносите никаких других изменений.Выполнить пакет.Вы должны получить вывод, как показано на скриншотах # 15 - # 16 .Он показывает, что файл .bat Process_1.bat был выполнен с выводом "Process 1"
.
Теперь измените значение переменной ExecutableFileName на Process_2.bat.Не вносите никаких других изменений.Выполнить пакет.Вы должны получить вывод, как показано на скриншотах # 17 - # 18 .Он показывает, что файл .bat Process_2.bat был выполнен с выводом "Process 2"
.
Надеюсь, что поможет.
Снимки экрана:
# 1:
# 2:
#3:
# 4:
# 5:
# 6:
# 7:
# 8:
# 9:
# 10:
# 11:
# 12:
# 13:
# 14:
# 15:
# 16:
# 17:
# 18: