У меня есть путь, по которому есть много каталогов с файлами и файлами за пределами каталога.
Я хочу извлечь все файлы/каталоги, сохраняя структуру папок.
Пожалуйста, помогите, если это возможно. Заранее спасибо.
Используемая команда:
$Path = "Some path"
$Binaries = Get-ChildItem -Directory -File -Path $Path -Recurse
Write-Host $Binaries
Вывод: пусто
Использовать оба переключателя -Directory
и -File
неправильно. Используйте только -File
и -Force
-Directory
(ограничьте результат только каталогами).-File
(ограничьте результат только файлами).Чтобы получить все файлы и папки вместе, опустите оба параметра -Directory
и -File
, поскольку они являются взаимоисключающими: Get-ChildItem -File -Directory
возвращает $null
…
Пример:
(Get-ChildItem -Recurse).Count -eq (
(Get-ChildItem -File -Recurse).Count +
(Get-ChildItem -Directory -Recurse).Count) # True
$null -eq (Get-ChildItem -File -Directory) # True
$null -eq (Get-ChildItem -File -Directory -Recurse) # True
Я получаю все файлы, используя -File -Recurse. Также я хочу создать zip-архив, сохраняющий структуру папок.
Если я правильно понял ваш последний комментарий, вы намерены создать один zip-архив папки и ее полного содержимого с помощью команды powershell. Я бы скачал 7zip и для удобства использовал следующую команду:
Compress-Archive -Path c:\msi -DestinationPath c:\logs\test.zip -CompressionLevel Optimal
Можете ли вы просмотреть файлы с помощью проводника Windows? У вас может не быть разрешения в PS. Попробуйте запустить PS, щелкнув правой кнопкой мыши ярлык PS и выбрав «Запуск от имени администратора».