Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Примерно так (не проверялось):
Скрытый текст
Код: Выделить весь код
@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» и т.п. — может получиться ситуация, что мы пытаемся дать файлу имя уже существующего файла. Потому правильный путь заключается в переименовании с одновременным перемещением во временную папку, а затем перемещением сразу всех переименованных файлов обратно (либо наоборот — сначала перемещение во временную папку. затем переименование файла с одновременным возвратом в исходную папку).
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:20, 16-04-2016 | #2