Ответ 1
Я думаю, что вам нужно создать переменную, которая принимает путь к папке и имя исполняемого файла для оценки как выражения. Затем вам необходимо назначить эту переменную, которая оценивается как выражение для свойства Executable для Execute Process Task
. Кроме того, во время разработки необходимо иметь допустимый исполняемый путь.
Это грубый пошаговый пример, который показывает, как вы можете передать переменную в свойство Executable задачи Execute Process. Пример был создан с использованием 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, для Stack Overflow, за которым следует идентификатор SO, и, наконец, описание. Это для меня, чтобы легко отнести это позже. См. Снимок экрана # 5.
Создайте следующие переменные: см. скриншот # 6.
-
ExecutableFileName - эта переменная имеет тип string. Он будет содержать имя исполняемого файла.
-
ExecutableFolder - эта переменная имеет тип string. Он будет содержать путь к папке исполняемого файла.
-
ExecutableFilePath - эта переменная имеет тип string. Не вводите значения для этой переменной. Это будет выражение, которое объединяет переменные ExecutableFolder и ExecutableFileName для генерации полного пути к файлу. См. Снимок экрана # 7. Выберите переменную и нажмите F4, чтобы открыть окно свойств. Установите EvaluateAsExpression в
True
и установите для выражения выражение@[User::ExecutableFolder] + @[User::ExecutableFileName]
-
ExecutableOutput - эта переменная имеет тип string. Он сохранит исполняемое значение вывода. В этом случае значение, отраженное файлами .bat.
На пути потока управления пакетами поставьте "Выполнять задачу процесса" и задачу Script, как показано на снимке экрана # 8.
Настроить задачу выполнения выполнения, как показано на снимке экрана # 9 - # 11. В разделе "Процесс" Задачи вам нужно указать исполняемый путь для начальной конфигурации. Кроме того, укажите StandardOutputVariable (это для этого примера). В разделе "Выражения" переопределите исполняемый путь, указав переменную @[User:: ExecutablePath]
В Script Задание замените основной метод, как показано на снимках экрана # 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:
<Т411 >
# 13:
# 14:
# 15:
# 16:
# 17:
# 18: