Como posso copiar todo o quarto arquivo de uma pasta para uma nova pasta?

5

Estou exportando uma animação como arquivos de imagem PNG. Das 1199 seqüências de quadros exportados, somente todo quarto arquivo contém um quadro-chave, o resto dos arquivos de imagem são duplicatas exatas do anterior.

Como posso copiar apenas o 4º arquivo para uma nova pasta?

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
    
por angelofdev 24.06.2018 / 03:45

2 respostas

4

Use um loop FOR / L e defina start como 0 , o passo para 4 e o end para 1200 , que é um a mais do que as sequências numéricas 1199 das partes do nome do arquivo que você precisa copiar apenas o quarto arquivo .

Isso iterará os números que começam em 0 , passando de 0, 4, 8, .... 1196 a contar por 4 e você pode acrescentar o valor iterado como uma string concatenada dentro de uma parte de um nome de arquivo junto com uma máscara curinga e usar isso com xcopy para copiar cada quarto arquivo de acordo.

Script em lote

Nota: Essa lógica pressupõe que os nomes dos arquivos sempre começarão com "arquivo-2" e sempre terminarão com os números de sequência logo antes do ponto antes do extensão png (ou seja, <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

Mais recursos

  • 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

por 24.06.2018 / 05:09
0

Se todos os arquivos que você deseja tiverem Copy em seus nomes, e todos os arquivos que você não quer não têm Copy em seus nomes, então você pode usar *Copy* , como em

copy *Copy* DestinationDirectory
ou use *copy* , desde que o Windows é insensível a maiúsculas e minúsculas. Se todos os arquivos que você deseja tiverem Copy no final de seus nomes, você pode usar *Copy (deixando o * no final). Você pode usar padrões de nome de arquivo no Windows Explorer digitando file:*copy* na caixa de pesquisa.     
por 24.06.2018 / 22:55