![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Рандомное копирование файлов по критерию |
|
|
CMD/BAT - [решено] Рандомное копирование файлов по критерию
|
Новый участник Сообщения: 2 |
Прочесал форум, находил схожие задачи, но не видел конкретно такой.
Суть следующая. Есть папка с файлами. Нужно чтобы файлы внутри этой папки, рандомно разделились в группы по 5 файлов и раскидались в новые папки, согласно своим группам. Т.е. Есть папка с 1500 файлами. Применяем к ней скрипт. В указанной директории создаётся 300 папок, в каждой из которых по 5 файлов выбранных случайно. Рандом в данной операции играет важную роль. Искренне надеюсь на вашу помощь. |
|
Отправлено: 11:13, 04-01-2019 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата arioo7:
Цитата arioo7:
Цитата arioo7:
![]() За "изобретение" - 5, по предмету - 2. Профессор, конечно, лопух, но аппаратура при нём, при нём! ![]() Помощь - предполагает наличие приложенных усилий, причем не для поиска готового решения, а приложенных усилий именно для решения задачи... есть внятные попытки решить задачу самостоятельно, студент? |
|||
------- Отправлено: 12:52, 04-01-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Как-то так
@Echo Off cls Set "BoxIn=Z:\Box_In" Set "Mask=*.*" Set "BoxOut=Z:\Box_Out" Set /A QQ=5 Set /A Max=10000 Set /A N=%Max% FOR %%f IN ("%BoxIn%\%Mask%") DO Call :Count "%%~nxf" Set /A M=N Set /A i=0 Set /A ND=%Max% Set /A QQQ=QQ+%Max% Set /A L=0 :Begin Set /A j=%Random% Set /A j=%Max%+1+%j%-(%j%/(%N%-%Max%))*(%N%-%Max%) If %L%==0 If %i%==0 Set /A ND+=1 If %L%==0 If %i%==0 Md "%BoxOut%\%ND%" Call :MyMove "F%j%" "%%F%j%%%" "%BoxIn%" "%BoxOut%\%ND%"||(Set /A L=1 &GoTo :Begin) Set /A L=0 Set /A i+=1 Set /A M-=1 If %M% GTR %Max% If %i% LSS %QQ% GoTo :Begin Set /A i=0 If %M% GTR %QQQ% GoTo :Begin If %M% GTR %Max% Set /A ND+=1 If %M% GTR %Max% (Md "%BoxOut%\%ND%" & >nul Move "%BoxIn%\%Mask%" "%BoxOut%\%ND%\") pause GoTo :Eof :Count Set /A N+=1 Set "F%N%=%~1" GoTo :Eof :MyMove If %2=="" Exit /B 1 Set "%~1=" >nul Move /Y "%~3\%~2" "%~4\" Exit /B 0 |
------- Отправлено: 19:57, 04-01-2019 | #3 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата YuS_2:
![]() |
|
------- Отправлено: 23:42, 04-01-2019 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата mwz:
![]() |
||
Отправлено: 00:06, 05-01-2019 | #5 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Iska, Да я и для TotalCmd позже нашёл плагин RandomWDX_1_0_1. Но ваше как раз решение батника пригодилось напрямую: надо было иметь пятизначные числа с лидирующими нулями в случае, если значность меньше.
![]() |
------- Отправлено: 01:30, 05-01-2019 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать mwz, тут, увы, этого нет:
Цитата:
|
|
Отправлено: 01:56, 05-01-2019 | #7 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать mwz,
Цитата:
В дополнение к решенной 5 лет назад задаче, еще вариант
@Echo Off cls Set "BoxIn=Z:\Box_In\Alll" Set "Mask=*.*" Set /A Max=10000 Set /A N=%Max% FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D /O:-D /T:C`) DO Call :Count "%%~nxf" FOR /F "usebackq tokens=1* delims==" %%f IN (`Set "@@"`) DO Call :MyRen "%BoxIn%\%%g" "%%g" %Max% Set /A N=%Max% FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D /O:N`) DO Call :Count "%%~nxf" Set /A N=%Max% FOR /F "usebackq tokens=1* delims==" %%f IN (`Set "@@"`) DO Call :MyRen2 "%BoxIn%\%%g" "%%g" %Max% pause GoTo :Eof :Count Set /A N+=1 Set "@@%N%=%~1" GoTo :Eof :MyRen Set /A j=%Random%+%3 Ren %1 "%j%_%~2" Exit /B 0 :MyRen2 Set /A N+=1 Set "New=%~2" Ren %1 "%N%_%New:*_=%" Exit /B 0 |
|
------- Последний раз редактировалось megaloman, 05-01-2019 в 13:48. Отправлено: 09:06, 05-01-2019 | #8 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата mwz:
|
|
------- Отправлено: 11:29, 05-01-2019 | #9 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата megaloman:
![]() Но спасибо — посмотреть другие методы тоже бывает полезно. |
|
------- Отправлено: 19:47, 05-01-2019 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - CMD/BAT Поиск по каталогам файлов bat и конвертирование их в JPEG | freerider1989 | Скриптовые языки администрирования Windows | 1 | 18-04-2016 08:37 | |
CMD/BAT - Поиск в html файле ip адресов и копирование их в новый txt. | 666egor666 | Тест-форум | 0 | 30-04-2015 11:31 | |
копирование файлов по сети через cmd | genia_2609 | Microsoft Windows NT/2000/2003 | 15 | 13-04-2015 12:10 | |
CMD/BAT - cmd\bat. Копирование содержимого папки без буфера обмена | Frommer | Скриптовые языки администрирования Windows | 1 | 09-04-2015 22:03 | |
CMD/BAT - Параллельное копирование файлов в bat. | Dremor | Скриптовые языки администрирования Windows | 18 | 12-01-2014 23:06 |
|