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

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

Ответить
Настройки темы
CMD/BAT - Переименование группы файлов, используя команды bat

Новый участник


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


Конфигурация

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


Изменения
Автор: SergMarkow
Дата: 21-01-2013
Условие. Имеется 2 bat-файла:
1.bat создает заданное число файлов с произвольным именем [001_имя1.txt, 002_имя2.txt,... 030_имя30.txt]
Код: Выделить весь код
@Echo Off 
SetLocal EnableExtensions 
set /a rid=9 
set /a rip=0 
cls 
del *.txt

for /l %%1 in (1,1,9) do call :rnd 
for /l %%2 in (10,1,30) do call :rnd2 
dir
exit /b

:rnd 
     set f=%random% 
     set /a rip+=1 
     echo 1 > "00%rip%_%f%.txt"
goto :eof
 
:rnd2
     set e=%random%
     set /a rid+=1 
     echo 1 > "0%rid%_%e%.txt" 
goto :eof
Второй файл 2.bat переименовывает их в обратном порядке, чтобы получить в таком виде [030_имя1.txt, 029_имя2.txt, 028_имя3.txt,... 001_имя30.txt]
Код: Выделить весь код
@Echo Off
SetLocal EnableExtensions

set /a sum=0
set ned=0
For %%A In ("*.txt") Do Call :Func "%%~nxA"
dir
exit /b

:Func
if /i %sum% lss 1 for %%k in (*.txt) do set /a ned+=1

set /a fer=%ned%-sum
set /a sum+=1
Set FileName=%~n1

rem if /i %fer% geq 100 if %fer%==%ned% ren "%FileName%%~x1" "%fer%%FileName:~3%%~x1"
if /i %fer% geq 10 if /i %fer% lss 100 ren "%FileName%%~x1" "0%fer%%FileName:~3%%~x1" 
if /i %fer% lss 10 if /i %fer% gtr 0 ren "%FileName%%~x1" "00%fer%%FileName:~3%%~x1"

goto :eof
Вопрос: почему второй батник 2.bat работает корректно, только когда файлов меньше 26 шт?
В приведенном примере в файле 1.bat я ввел цикл на создание 30 текстовых файлов. Корректно переименовываются все файлы между первым и последним - их программа не трогает.
Поясните в чем причина?
Для наглядности, поменяйте значение 30 в строке
Код: Выделить весь код
for /l %%2 in (10,1,30) do call :rnd2
на значение 24
Код: Выделить весь код
for /l %%2 in (10,1,24) do call :rnd2
и запустите 1.bat. Теперь 2.bat работает как надо.

Отправлено: 23:23, 20-01-2013

 


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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Переименование группы файлов по дате создания Serg2010 Скриптовые языки администрирования Windows 8 14-04-2012 00:40
Переименование группы файлов по дате создания Serg2010 AutoIt 1 10-04-2012 10:25
CMD/BAT - Переименование файлов. gen0m.rsw Скриптовые языки администрирования Windows 1 15-10-2010 19:15
переименование файлов mask Программирование и базы данных 6 20-05-2003 00:53
Переименование файлов Pavelz Microsoft Windows NT/2000/2003 7 24-01-2003 10:32




 
Переход