Script para mover arquivos que correspondem a parte do nome do arquivo antera

0

Estou tentando descobrir como escrever um script que aceita arquivos assim:

img123
img123back
img124
img125
img125back
img126
img127

Eu preciso mover todos os arquivos com o mesmo número que os arquivos com a palavra "voltar" para uma pasta separada. Exemplo de resultados:

img123
img123back
img125
img125back
    
por ROB 09.08.2018 / 22:11

1 resposta

0

Você pode usar um para / f para iterar a saída do dir comando no diretório de origem. Você pode usar alguma lógica se se e para substituições de variável de loop para confirmar que os arquivos com a única string "back" existem, e se isso acontecer, copie esse arquivo e o arquivo com o mesmo nome menos a string de acordo.

@ECHO ON

SET "srcPath=C:\Source\Path"
SET "destPath=C:\Copy\Path"
SET "keyword=back"

FOR /F "TOKENS=*" %%A IN ('DIR /B /A-D "%srcPath%\*"') DO (
    IF EXIST "%%~DPA%%~NA%keyword%%%~XA" XCOPY /Y /F "%%~DPA%%~NA%keyword%%%~XA" "%destPath%\" & XCOPY /Y /F "%%~FNXA" "%destPath%\"
    )
PAUSE
EXIT

Mais recursos

  • Para / F
  • Dir
  • Se

  • Substituições em lote (FOR /?)

    In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:

    %~I         - expands %I removing any surrounding quotes (")
    %~fI        - expands %I to a fully qualified path name
    %~dI        - expands %I to a drive letter only
    %~pI        - expands %I to a path only
    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    
  • XCopy

  • Redirecionamento
por 10.08.2018 / 02:04