В вашем вопросе не указано, хотите ли вы его для всех файлов, конкретных файлов или в вашем файле списка также будет указано расширение файлов, поэтому я буду использовать только ваши примеры:
@echo off
for /f "tokens=1,*" %%i in (list.txt) do (
if exist "%%i.txt" %%j copy /Y "%%i.txt" "%%j.txt"
)
Возможно, вы захотите добавить /Y
для подавления запроса на перезапись файлов. Однако если вы не хотите перезаписывать и, возможно, на более позднем этапе содержимое исходных файлов может потребоваться добавить к существующим новым файлам, тогда вы можете проверить наличие целевого файла и добавить:
@echo off
for /f "tokens=1,*" %%i in (list.txt) do (
if exist "%%i.txt" if not exist "%%j.txt copy "%%i.txt" "%%j.txt"
if exist "%%j.txt" type "%%i.txt">>"%%j.txt"
)