SSIS Переименование файлов путем замены части имени файла

Удалить обведенную часть имени файла

В папке x есть два типа файлов:\abc\sales\ один - сжатый файл.gz, а другой - несжатый файл.txt. Моя цель - переименовать все файлы.txt:(оставив файлы.gz без изменений Например, "Accn_adjustments_201802020147.txt"

Часть после подчеркивания - это в основном дата и время, время не всегда "0147", это может быть "0148" или "0210" или что-то еще, но всегда 4 цифры... Моя задача состоит в том, чтобы удалить последние 4 цифры поэтому конечный результат будет выглядеть примерно как "accn_adjustments_20180202.txt"

Я думаю, что либо для каждого цикла или задачи скрипта может помочь мне решить эту проблему, но я не знаю, как это сделать.

Любая помощь приветствуется, спасибо заранее...

1 ответ

Решение

Шаг 1) Добавьте Foreach Loop Container в пакет (перетащите контейнер цикла по каждому элементу из контейнеров на панели инструментов служб SSIS в рабочую область пакета).

Шаг 2) Дважды щелкните по циклу Foreach, чтобы открыть редактор

Шаг 3) Нажмите Коллекция в левом меню, затем измените Enumerator собственность на Foreach File Enumerator

Шаг 4) Выберите вашу папку: x:\abc\sales\

Шаг 5) Измените свойство Files: на *.txt

Дополнительно вам понадобится:

Шаг 6) Перетащите File System Task из панели инструментов в Foreach Loop Container

Шаг 7) Дважды щелкните File System Task и измените операцию на Rename File

Шаг 8) Установите исходное и целевое соединение для задачи (я полагаю, вы знаете, как их создать).

Теперь контейнер будет перебирать только текстовые файлы в папке.

Это можно расширить для ваших целей, используя Переменные, раздел "Переменные переменных" в цикле Foreach и выражения для динамического изменения имен файлов и изменения свойства соединения источника данных текстового файла. Хотя я не на 100% точно понимаю, что еще вам нужно, это должно по крайней мере ответить на этот вопрос, чтобы вы начали.

Некоторое дополнительное чтение, чтобы помочь с процессом переименования:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/6c6e4fba-be40-4c53-ab8e-348ccd39c687/rename-file-using-file-system-task-editor?forum=sqlintegrationservices

Другие вопросы по тегам