Вы можете использовать оператор 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
.