Вы можете использовать оператор for чтобы сделать это, потому что он дает вам доступ к имени файла и расширению отдельно:
for /f "tokens=1* delims=." %i in ('dir /b yyy.*') do ren "%i.%j" "%i%j.zzz"
Использование tokens=1,2 delims=. вызывает разделение значения, возвращаемого dir /b yyy.* на . в переменные %i и %j , где %i - имя файла (или «yyy»), а %j - расширение переменной (без начальной точки .).
Используйте команду выше, если вы печатаете ее непосредственно из командной строки. Из пакетного файла вам нужно удвоить все символы % как это:
for /f "tokens=1* delims=." %%i in ('dir /b yyy.*') do ren "%%i.%%j" "%%i%%j.zzz"
Убедитесь, что вы запускаете эту команду из папки, в которой находятся все файлы yyy.xxxxxx .