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
-
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
- Redirecionamento