Этого легко достичь, если вы включили использование расширенной хранимой процедуры "xp_cmdshell" (см. "Электронная документация по теме" Настройка поверхности ").
В следующем примере я создаю файл .CMD, содержащий все мои параметры ROBOCOPY, и просто выполняю этот командный файл, используя xp_cmdshell, получая выходные данные в переменную таблицы (вместо этого может быть постоянной таблицей):
Просто добавьте задачу «Выполнение оператора T-SQL» в пакет служб SSIS со следующим оператором:
/** START **/
DECLARE @cmdfile nvarchar(255) = N'C:\myFolder\myCommandFile.cmd'
DECLARE @logtable table (
[RowId] integer IDENTITY(1,1) NOT NULL
,[Message] nvarchar(1024) NULL
)
INSERT INTO @logtable ([Message])
EXEC xp_cmdshell @cmdfile
SELECT *
FROM @logtable
WHERE
[Message] IS NOT NULL
/** END **/
В зависимости от параметров ведения журнала, установленных для команды ROBOCOPY, вы можете отображать прогресс, заголовки, отчет или другие. Смотрите документацию ROBOCOPY для этих опций. Также попробуйте использовать переключатель / TEE, если хотите получить любой вывод консоли из команды ROBOCOPY.