Você pode usar um loop FOR / F e definir o caractere de sublinhado nos nomes dos arquivos como um delimitador. Você pode usar tokens 1,2,3,*
para concatenar variáveis posteriormente para compilar e analisar o nome do arquivo de origem e destino de acordo para uso posterior com o XCOPY
Script em lote
@ECHO ON
SET Source=c:/roger/brawn
SET Destination=D:/var/lag
FOR /F "TOKENS=1,2,3,* DELIMS=_" %%F IN ('DIR /B /A-D "%source%\*.pdf"') DO ECHO F | XCOPY /Y /F "%source%\%%F_%%G_%%H_%%I" "%Destination%\%%F_%%G_%%I" && IF EXIST "%Destination%\%%F_%%G_%%I" DEL /Q /F "%source%\%%F_%%G_%%H_%%I"
EXIT
Observação: o comando ECHO canaliza um F
para o XCOPY seleciona implicitamente F
para" arquivo ", pois especifica explicitamente o nome do novo arquivo de destino analisando o terceiro token no loop para ajude a obter o nome do arquivo desejado. O comando XCOPY é seguido pelo execução condicional (& &) confirmando que ela foi bem-sucedida e, em seguida, confirma a existência do novo arquivo de destino antes de excluir o arquivo original.