У меня есть много папок, я хочу выбрать все, заканчивающиеся на 30, и переместить их в другую папку, это можно легко сделать в Windows или DOS?

Образ

Это одноразовая задача

2 ответа2

2

Вы можете использовать приведенный ниже скрипт powershell, чтобы удовлетворить ваши потребности.

$copy=Get-PSDrive -PSProvider FileSystem  |  %{ Get-ChildItem $_.Root -directory -Recurse -force  -ErrorAction SilentlyContinue| Where-Object {$_.basename -match ".*30$"}}
Copy-Item -Path $copy.Fullname -Destination D:\TEST\ 

Вам просто нужно изменить «D:\TEST\» в коде на путь, по которому вы хотите разместить эти папки.

Примечание. Этот код предназначен для копирования соответствующих папок в новую папку. Если вы хотите вырезать их в новую папку, вам нужно изменить первый "Копировать" во второй строке кода на "Переместить". Кроме того, некоторые папки могут содержать системные файлы, и у вас может не быть разрешения на их перемещение.

1

Простая однострочная оболочка Powershell:

PS C:\> Get-ChildItem -Path C:\source\* -Directory -Filter *30 | Move-Item -Destination C:\destination\

В графическом интерфейсе используйте "*30" kind:=folder фильтр папки в инструменте поиска:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .