Powershell: мне не удается получить каталоги и файлы по определенному пути с помощью командлета get-ChildItem

У меня есть путь, по которому есть много каталогов с файлами и файлами за пределами каталога.

Я хочу извлечь все файлы/каталоги, сохраняя структуру папок.

Пожалуйста, помогите, если это возможно. Заранее спасибо.

Используемая команда:

$Path = "Some path"

$Binaries = Get-ChildItem -Directory -File -Path $Path -Recurse
Write-Host $Binaries

Вывод: пусто

Можете ли вы просмотреть файлы с помощью проводника Windows? У вас может не быть разрешения в PS. Попробуйте запустить PS, щелкнув правой кнопкой мыши ярлык PS и выбрав «Запуск от имени администратора».

jdweng 03.07.2024 14:18

Использовать оба переключателя -Directory и -File неправильно. Используйте только -File и -Force

Theo 03.07.2024 14:58
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
55
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

  • Чтобы получить список каталогов, используйте параметр -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-архив, сохраняющий структуру папок.

Royston 03.07.2024 15:28
Ответ принят как подходящий

Если я правильно понял ваш последний комментарий, вы намерены создать один zip-архив папки и ее полного содержимого с помощью команды powershell. Я бы скачал 7zip и для удобства использовал следующую команду:

Compress-Archive -Path c:\msi -DestinationPath c:\logs\test.zip -CompressionLevel Optimal

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