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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] переименование по индексу

Ответить
Настройки темы
CMD/BAT - [решено] переименование по индексу

Аватара для icq99999999

Пользователь


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

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


есть скрипт на паскале для переименования по индексу:
Код: Выделить весь код
var
  I: Integer;

begin
  I := I + 1;
  FileName := IntToStr(I);
end.
как сделать то же самое в bat?

вот мой код , но он работает не очень :
Код: Выделить весь код
Dir C:\Users\user\Desktop\JJ /a:-d /b /o:n > Sort_files.txt
For /F "usebackq tokens=* delims=" %%i In ("Sort_files.txt") do (	
	 ECHO %%i
	 rem for /l %%1 in (1,1,25) do ren "%folder%\%%i" "%%1.jpg"
	)
)

Отправлено: 14:42, 16-04-2016

 

Ветеран


Сообщения: 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для icq99999999

Пользователь


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

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


Изображения
Тип файла: jpg sСнимок.jpg
(242.1 Kb, 14 просмотров)

код работает, но почему-то файлы не по порядку.

Отправлено: 17:01, 16-04-2016 | #3


Ветеран


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

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


icq99999999, Это последствия сортировки. В вашем случае надо брать значения из скобок:
Код: Выделить весь код
@echo off
for /f "tokens=1,2 delims=()" %%i in ('dir /b') do 2>nul ren "%%i(%%j)" "%%j.jpg"
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:50, 16-04-2016 | #4


Ветеран


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

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


Цитата icq99999999:
но почему-то файлы не по порядку. »
Именно что строго по порядку.

P.S. Освойте «Alt-PrintScreen».

Отправлено: 17:58, 16-04-2016 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] переименование по индексу

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Переименование файла по маске. Damien_here Скриптовые языки администрирования Windows 5 13-06-2017 12:51
VBS/WSH/JS - Переименование файла по условиям bombording Скриптовые языки администрирования Windows 1 24-03-2014 16:17
CMD/BAT - Переименование файлов по маске tobornforlife@vk Скриптовые языки администрирования Windows 5 24-02-2014 17:07
CMD/BAT - Переименование файлов в папке по имени папки_счётчик Sergo_zloy Скриптовые языки администрирования Windows 13 17-01-2014 16:58




 
Переход