Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/40: Рейтинг темы: голосов - 40, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.05.2018
Сообщений: 6
1

Перемещение файлов в подпапки по 50/100/150 штук

11.05.2018, 05:45. Показов 7170. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Имеется папка с многомногофайлов. Каким скриптиком можно распределить эти 10000 файлов (фото/видео) в подпапки (созданные скриптом) по 50/100/150 штук?
P.S. в гугле и др поисковиках не банили
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2018, 05:45
Ответы с готовыми решениями:

Автосортировка файлов - перемещение файлов в подпапки по 4 штуки
Уважаемые программисты, нужна Ваша помощь! Необходимо с помощью bat-файла автоматизировать...

Перемещение всех файлов из каждой подпапки одной папки в другую папку и их переименование
Добрый день! Прошу помощи, нужен батник или скрипт, который перемещал бы файлы из...

Перемещение файлов из папки в несколько папок по 1000 штук
Здравствуйте! Помогите решить задачу, плиз. Есть папка, содержащая примерно 30 000 xml-файлов...

Сколько нужно купить баранов, коз, телят чтобы всего их было 100 штук имея при себе 100 рублей?
Здравствуйте! Хотел бы узнать какими способами каждый из вас сможет составить алгоритм решения...

15
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.05.2018, 01:28 2
Сортировка файлов по папкам (из основной папки раскидать в новосозданные по столько-то штук)
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
set kf=100 &: Число файлов в папке
:l
set/a m+=1
setlocal enabledelayedexpansion 
 2>nul dir/a-d/b "papka"|>nul find/v "" || goto :eof
 for /f "delims=" %%a in ('2^>nul dir/a-d/b "papka"') do (
  if not exist "papka_%m%" md "papka_%m%"
  set/a n+=1& if !n! leq %kf% >nul move/y "papka\%%a" "papka_%m%\%%a"
 )
endlocal
goto l
exit
но что-то мне подсказывает что сигареты должны быть очень длинными, а пачка бездонной.
1
0 / 0 / 0
Регистрация: 11.05.2018
Сообщений: 6
12.05.2018, 06:07  [ТС] 3
хммм..... создал батник..засунул туда код, запустил...но не получилось((( где я дурак?
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.05.2018, 17:37 4
Цитата Сообщение от Pingvin_xD Посмотреть сообщение
где я дурак?
вероятно здесь:
Цитата Сообщение от alpap Посмотреть сообщение
dir/a-d/b "papka"
ну и далее по коду соответственно.
0
0 / 0 / 0
Регистрация: 11.05.2018
Сообщений: 6
13.05.2018, 07:04  [ТС] 5
ну а правда, как заставить код работать?
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
13.05.2018, 13:01 6
волшебный пендаль нужен? Написать свой путь вместо моего: "papka"
1
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
13.05.2018, 13:18 7
Лучший ответ Сообщение было отмечено Pingvin_xD как решение

Решение

чуть переделал код чтобы удобнее было:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
set "d=Диск:\путь к папке"
set kf=10 &: Число файлов в папке
:l
set /a m+=1
setlocal enabledelayedexpansion 
 pushd "%d%"
  2>nul dir /a-d/b|>nul find /v "" || goto :eof
  for /f "delims=" %%a in ('2^>nul dir/a-d/b') do (
   if not exist "%d%_%m%" md "%d%_%m%"
   set /a n+=1& if !n! leq %kf% >nul move /y "%%a" "%d%_%m%\%%a"
  )
 popd
endlocal
goto l
exit
Вот пример работы
До:
Перемещение файлов в подпапки по 50/100/150 штук


После:
Перемещение файлов в подпапки по 50/100/150 штук
2
0 / 0 / 0
Регистрация: 11.05.2018
Сообщений: 6
13.05.2018, 13:24  [ТС] 8
удалил
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
13.05.2018, 13:28 9
в какой кодировке код сохраняете, видите у меня в 866. Возможно у вас имена файлов имеют кириллицу и не находятся кодом.
Приведите несколько имен файлов и как они лежат в основной папке - все вместе или в подпапках?
0
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
13.05.2018, 13:28 10
если это разовая акция, то
файловый менеджер: Total Commander
функция: групповое переименование
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
13.05.2018, 13:32 11
bidstrup,
здесь распределение по папкам причем тут переименование?
0
0 / 0 / 0
Регистрация: 11.05.2018
Сообщений: 6
13.05.2018, 13:45  [ТС] 12
изменил кодировку на OEM866
файлы лежат в одной папке
указал путь
запускаю батник:
10 файлов и батник перемещаются в созданную скриптом подпапку. и все
остальные файлы как лежали, так и лежат
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
13.05.2018, 19:37 13
Цитата Сообщение от Pingvin_xD Посмотреть сообщение
10 файлов и батник перемещаются
10 - потому что вы 10 и поставили
батник - потому что не надо совать его в папку с файлами, можно запускать рядом
и все - потому что когда батник переместился по новому пути уже или нет ничего или путь не подходит естественно.

Делайте выводы и не делайте ошибок и все заработает как у меня в примере выше.
1
0 / 0 / 0
Регистрация: 11.05.2018
Сообщений: 6
14.05.2018, 06:06  [ТС] 14
а как можно автоматически остановить процесс, если файлы кончились?
а то все файлы переместились в созданные папки, а скрипт дальше создаёт пустые папки
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
14.05.2018, 15:09 15
Цитата Сообщение от Pingvin_xD Посмотреть сообщение
а скрипт дальше создаёт пустые папки
покажите как это происходит.
в моем коде 8я строка (в этом кусочке 4я) специально защищает от этого
вот пример (если нет файлов будет вылет)
Windows Batch file
1
2
3
4
5
6
7
@echo off
set "d=papka"
 pushd "%d%"
  2>nul dir /a-d/b|>nul find /v "" || goto :eof
  echo Файлы есть
 popd
pause
Перемещение файлов в подпапки по 50/100/150 штук
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
14.05.2018, 15:12 16
а еще может быть банальная причина - bat не справляется с количеством файлов (объемом), вот такой уж вот он и кажись я вначале говорил что плохая затея на нем делать что-то подобное.
0
14.05.2018, 15:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.05.2018, 15:12
Помогаю со студенческими работами здесь

Копирование файлов из любой подпапки в другую
Нужен код который бы копировал из work\Разобранные"Тут несколько папок"\dist\ в папку с батником...

Как передать в ADOQuery группу значений по 100 штук
Всем привет! Уважаемые комрады столкнулся с такой проблемой не могу понять как грамотно решить....

Вывести на экран таблицу стоимости для 10, 20, 30., 100 штук
Вывести на экран таблицу стоимости для 10, 20, 30., 100 штук товара, при условии, что одна штука...

Записать в файл txt числа с последовательным увеличением на 1...100 штук
записать в файл txt числа с последовательным увеличением на 1...100 штук


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru