5

Я экспортирую анимацию в виде файлов изображений 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

2 ответа2

4

Используйте цикл FOR /L и установите начало 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

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

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

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