Ваша строка Get-ChildItem
приводит к целому множеству возвращаемых предметов.Независимо от того, когда они являются файлами или папками.В итоге вы получите массив объектов, содержащий оба.
На абстрактном уровне это будет выглядеть так:
- folder \
- folder \ a.file
- folder \ b.file
Если вы посмотрите на определение Compress-Archive
, вы найдете следующее описание параметра -Path
.
Указывает путь или пути к файлам, которые вы хотите добавить в архивированный архивный файл.Этот параметр может принимать символы подстановки.Подстановочные знаки позволяют вам добавлять все файлы в папке в ваш архивный файл.Чтобы указать несколько путей и включить файлы в несколько мест в выходном заархивированном файле, используйте запятые для разделения путей.
Он не сохраняет путь, если вы передаете ему один файл.Таким образом, он покорно архивирует все в Folder\
и добавляет a.file
и b.file
.
Чтобы обойти это, вы можете указать дополнительный фильтр для Get-ChildItem
, например -File
или -Directory
просто получить файлы или каталоги.Я предполагаю, что вы просто хотите, чтобы файлы имели соответствующую структуру папок.
Чтобы это работало, вы можете скопировать файлы во временную папку и сжать всю временную папку.Он будет содержать только те файлы, которые вы хотите.