I want to move all .txt files from location1 and its subdirectories to location2, and also rename these .txt files by replacing every "-" with "_".
Desde que você comentou um monte de trabalhos em lote que você colocou nisso, eu queria compartilhar um roteiro com você que ajudasse a explicar como você precisa que isso funcione.
Certifique-se de testar e confirmar todos os trabalhos como esperado do seu lado com os dados de teste antes de executar qualquer coisa crítica ou relacionada à produção.
Exemplo de script
Você não precisa usar a lógica de comentários, mas está lá, caso precise
@ECHO ON
SET Loc1Dir=C:\Users\abcde\Desktop\Practice_Folder\batch_rename\location1
SET Loc2Dir=C:\Users\abcde\Desktop\Practice_Folder\batch_rename\location2
CD /D "%Loc1Dir%"
FOR /R %%F IN ("*-*.txt") DO CALL :copyFile %%~F %%~NXF
GOTO: EOF
:copyFile
SET copyfname=%~1
SET fname=%~2
SET fname=%fname:-=_%
ECHO F | XCOPY /Y /F "%copyfname%" "%Loc2Dir%\%fname%"
:::XCOPY /Y /F "%copyfname%" "%Loc2Dir%\"
:::REN "%copyfname%" "%fname%"
GOTO :EOF