При попытке автоматизации процесса инсталляции конфигураций из дистрибутивов 1С столкнулся, как и многие, с тем, что дистрибутив использует архив нестандартного формата EFD, а штатная setup.exe не понимает никаких ключей и всегда требует взаимодействия через GUI, что при установке 200+ дистрибутивов становится проблематичным. Исчерпывающее описание архива не нашёл, максимум наткнулся на полезное упоминание об использовании алгоритма deflate, и решил восполнить пробел, сделав своё. Готовые утилиты для распаковки, в принципе, есть (например, //infostart.ru/public/710201/), но решил написать PS-скрипт для независимости от наличия самой 1С и для кроссплатформенности. Результат трудов представлен в приложенных файлах.
Для использования скрипта надо, во-первых, выполнить его в контексте текущей сессии PowerShell. Например, если скрипт находится в текущей директории:
. .\Extract-EfdFile.ps1
(Точка в начале строки и пробел после неё обязательны, в противном случае скрипт выполнится в дочернем шелле, и в текущей сессии функции останутся не определены.)
Далее можно вызывать функции Extract-EfdFile и Extract-EfdFiles для разархивации одного архива или сразу нескольких.
Extract-EfdFile 'my.efd' 'C:\ДиректорияРаспаковки'
Extract-EfdFiles 'C:\ДиректорияСАрхивами' 'C:\ДиректорияРаспаковки'
При использовании второй функции архивы в исходной папке могут находиться на любом уровне вложенности.