Используйте move
команду с соответствующими аргументами:
переместить * -2.jpg c: \ somefolder
Есть список цветных фотографий из Hatton1.jpg
к Hatton72.jpg
каждой фотографии имеет одинаковый черный и белый один с именем Hatton1-2.jpg
черезHatton72-2.jpg
Есть ли способ вырезать файлы -2 в отдельный каталог?
Используйте move
команду с соответствующими аргументами:
переместить * -2.jpg c: \ somefolder
Это немного сложно, из-за коротких имен файлов: -
*~N.???
, где *
начинается имя файла и N
является целым числом (там, где есть несколько столкновений) - см dir /x
.*~2.*
найдет некоторые из этих коротких имен, а также файлы, которые вы хотите, с *~2.*
длинным именем.В cmd
, перейдите в каталог с файлами: вы можете перечислить те, которые вы хотите переместить:
dir /b | findstr "~2.jpg"
В идеале вы должны иметь возможность использовать:
for /f %f in ('dir /b | findstr "~2.jpg"') do move "%f" NewDirPath
К сожалению, опять же, вы не можете использовать канал во встроенной команде в for
цикле, поэтому вам нужно использовать две команды (или три, чтобы удалить временный файл):
dir /b > Files.lst for /f %f in ('findstr "~2.jpg" Files.txt') do move "%f" NewDirPath del Files.lst
Это не очень элегантное решение, но вы, вероятно, делаете это только один раз. Если вам нужно сделать это несколько раз, поместите команды в командный файл и убедитесь, что вы %
удвоили переменную в цикле:
... for /f %%f in ('findstr "~2.jpg" Files.txt') do move "%%f" NewDirPath ...
Используя PowerShell вы можете использовать Get-ChildItem
вместе с Move-item
.
Это будет выглядеть примерно так:
Get-ChildItem -Filter '*-2.jpg' -Recurse | %
Я не тестировал этот код, но он должен быть очень похожим. Использование обычного поиска Windows и перетаскивания файлов также, вероятно, будет работать.