![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование группы файлов, используя команды bat |
|
CMD/BAT - Переименование группы файлов, используя команды bat
|
Новый участник Сообщения: 8 |
Условие. Имеется 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 @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 В приведенном примере в файле 1.bat я ввел цикл на создание 30 текстовых файлов. Корректно переименовываются все файлы между первым и последним - их программа не трогает. Поясните в чем причина? Для наглядности, поменяйте значение 30 в строке на значение 24 и запустите 1.bat. Теперь 2.bat работает как надо. |
|
Отправлено: 23:23, 20-01-2013 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|