Перемещение файлов из одной папки в другую без использования -Recurse - PullRequest
0 голосов
/ 27 января 2019

У меня есть сценарий powershell, где все, что я хочу сделать, это переместить файлы определенного типа из указанной папки в папку назначения.К сожалению, это не работает без -Recurse содержащиеся, что не является функциональностью, которую я хочу достичь.Если я включаю -Recurse, он начинает перемещать изображения из "D: / Photos / x /" и т. Д. Все, что я хочу сделать, это перемещать файлы из "D: / Photos" в место назначения

Get-ChildItem "D:\Photos" -Include *.png, *.jpeg, *.jpg |
Move-Item -Destination "D:\Photos\Powershell Task" -Force

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Решение:

Get-ChildItem "D:\Photos\*" -Include *.png, *.jpeg, *.jpg | Move-Item -Destination "D:\Photos\Powershell Task" -Force

Объяснение: При выборе Get-ChildItem для использования необходимо включить -recursion, выбрав ИЛИ определить, что включает представление с использованием подстановочных знаков в -path.Этот случай D: \ Photos \ * определяет получение всех детей в D: \ Photos, которые имеют как имя, так и расширение, тогда вы фильтруете их, используя -include, чтобы сказать только те, которые имеют расширения .jpg.png

0 голосов
/ 27 января 2019

Параметр -Include без -Recurse не работает.

Однако есть еще один способ заставить -Include делать то, что вы хотите (а именно, фильтровать более одного расширения), и это добавить \* к Пути.

Вваш случай:

Get-ChildItem -Path "D:\Photos\*" -Include *.png, *.jpeg, *.jpg |
Move-Item -Destination "D:\Photos\Powershell Task" -Force

Имейте в виду: путь назначения D:\Photos\Powershell Task должен существовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...