Как я могу скопировать каждый 4-й файл в папке в новую папку?

301
angelofdev

Я экспортирую анимацию в виде файлов изображений PNG. Из 1199 экспортированных последовательностей кадров только каждый 4-й файл содержит ключевой кадр, остальные файлы изображений являются точными копиями предыдущего.

Как я могу скопировать только 4-й файл в новую папку?

file-20000.png - Copy file-20001.png - Duplicate of file-20000 file-20002.png - Duplicate of file-20000 file-20003.png - Duplicate of file-20000 file-20004.png - Copy file-20005.png - Duplicate of file-20004 file-20006.png - Duplicate of file-20004 file-20007.png - Duplicate of file-20004 file-20008.png - Copy 
5

2 ответа на вопрос

4
Pimp Juice IT

Используйте / л для контура и установите начало на 0, то шаг к 4и конец к 1200которой еще один, чем 1199число последовательностей имен файлов частей, которые вам нужно только скопировать четвертый файл.

Это будет повторять числа, начиная 0с 0, 4, 8, .... 1196 подсчета 4, и вы можете добавить повторяющееся значение в виде строки, объединенной в пределах части имени файла вместе с маской подстановочного знака и использовать ее с xcopy для копирования каждого 4-го файла соответственно.


Пакетный скрипт

Примечание. Эта логика предполагает, что имена файлов всегда начинаются с «file-2» и всегда заканчиваются порядковыми номерами непосредственно перед точкой перед расширением png(то есть <SeqNum>.png) .

@ECHO ON  SET SrcDir=C:\folder\src SET DestDir=C:\folder\dest SET fNamePart=file-2 SET ext=png  FOR /L %%a IN (0, 4, 1200) DO ( ECHO F | XCOPY /Y /F "%SrcDir%\%fNamePart%*%%a.%ext%" "%DestDir%\" )  PAUSE EXIT 

Дополнительные ресурсы

  • FOR / L

    FOR /L %variable IN (start,step,end) DO command [command-parameters]  The set is a sequence of numbers from start to end, by step amount. So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would generate the sequence (5 4 3 2 1) 
  • XCOPY

0
Scott

Если все файлы, которые вы хотите иметь Copyв своих именах, и все файлы, которые вы не хотите, не имеют Copyв своих именах, то вы можете использовать *Copy*, как в

копировать * копировать * DestinationDirectory
или использовать *copy*, так как Windows не чувствительна к регистру. Если все файлы, которые вы хотите, имеют Copy в конце свои имена, вы можете использовать *Copyвместо этого (опуская *в конце). Вы можете использовать шаблоны имен файлов в проводнике Windows, введя file:*copy*в поле поиска.

Похожие вопросы