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% точно понимаю, что еще вам нужно, это должно по крайней мере ответить на этот вопрос, чтобы вы начали.
Некоторое дополнительное чтение, чтобы помочь с процессом переименования: