Примерно так (не проверялось):
Скрытый текст
Код:

@echo off
setlocal enableextensions enabledelayedexpansion
set /a iCount = 0
pushd "%UserProfile%\Desktop\JJ" && (
for /f "usebackq delims=" %%i in (
`2^>nul dir /b /a:-d /o:n "*.*"`
) do (
set /a iCount += 1
ren "%%~i" "!iCount!.%%~xi"
)
popd
)
endlocal
exit /b 0
На самом деле этот код не вполне корректен при определённых условиях. Если исходные имена файлов будут выглядеть как «1.ext», «2.ext» и т.п. — может получиться ситуация, что мы пытаемся дать файлу имя
уже существующего файла. Потому правильный путь заключается в переименовании с одновременным перемещением во временную папку, а затем перемещением сразу всех переименованных файлов обратно (либо наоборот — сначала перемещение во временную папку. затем переименование файла с одновременным возвратом в исходную папку).