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

Помогите переделать батник-сортировщик

13.05.2012, 13:30. Показов 996. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа сортирует файлы по папкам - копирует файлы с одинаковым конечным именем и сортирует их по папкам. По идее папок должно быть столько, сколько файлов в каждой папке (как видите папок 12), но лимит в проге - 999, помогите сделать до 99999

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@echo off
  
if not "%1" == "" goto L1:
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %%i
echo NUMERICAL CAPACITY EXHAUSTED, PROCESS TERMINATED
pause
goto ND:
 
:L1
if not "%2" == "" goto L2:
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %1 %%i
goto ND:
 
:L2
if not "%3" == "" goto L3:
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %1 %2 %%i
goto ND:
 
:L3
md d:\DiplomDa4a\p0%1%2%3
echo F | xcopy d:\Diplom3\1\1_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\1_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\2\2_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\2_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\3\3_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\3_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\4\4_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\4_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\5\5_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\5_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\6\6_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\6_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\7\7_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\7_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\8\8_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\8_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\9\9_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\9_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\10\10_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\10_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\11\11_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\11_000%1%2%3.jpeg
echo F | xcopy d:\Diplom3\12\12_000%1%2%3.jpeg d:\DiplomDa4a\p0%1%2%3\12_000%1%2%3.jpeg
echo PASSED: %1%2%3
 
:ND
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.05.2012, 13:30
Ответы с готовыми решениями:

Нужно переделать батник
Пожалуйста. Нужно сделать этот код на линуксе, а команд на линуксе я вообще не знаю. Очень прошу!! CHCP 1251 @echo off color f ...

Помогите написать батник
Помогите написать батник... Допустим я его запустил с флешки, он должен заменять файл на компьютере(я знаю его путь) на файл с флешки,...

Помогите строчку кода перенести в другой батник, чтобы все символы остались
Помогите строчку кода перенести в другой батник, чтобы все символы остались for /f %%a in ('cscript //nologo _.vbs') do set FLASH=%%a: ...

2
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
13.05.2012, 17:54
Прикольная рекурсия
Не проверял, но из виду должно работать по аналогии.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@echo off
 
if "%1" neq "" goto :L1
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %%i
echo NUMERICAL CAPACITY EXHAUSTED, PROCESS TERMINATED
pause
goto :eof
 
:L1
if "%2" neq "" goto :L2
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %1 %%i
goto :eof
 
:L2
if "%3" neq "" goto :L3
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %1 %2 %%i
goto :eof
 
:L3
if "%4" neq "" goto :L4
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %1 %2 %3 %%i
goto :eof
 
:L4
if "%5" neq "" goto :L5
for %%i in (0 1 2 3 4 5 6 7 8 9) do call %0 %1 %2 %3 %4 %%i
goto :eof
 
:L5
md d:\DiplomDa4a\p0%1%2%3%4%5
for %%i in (1 2 3 4 5 6 7 8 9 10 11 12) do (
echo F|xcopy d:\Diplom3\%%i\%%i_0%1%2%3%4%5.jpeg d:\DiplomDa4a\p0%1%2%3%4%5\%%i_0%1%2%3%4%5.jpeg
)
echo PASSED: %1%2%3%4%5
Добавлено через 13 минут
Только зачем же так насиловать винду. Это ж не язык высокого уровня.

Вот тоже самое без рекурсии. Будет работать в разы быстрее:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
for %%a in (0 1 2 3 4 5 6 7 8 9) do (
 for %%b in (0 1 2 3 4 5 6 7 8 9) do (
  for %%c in (0 1 2 3 4 5 6 7 8 9) do (
   for %%d in (0 1 2 3 4 5 6 7 8 9) do (
    for %%e in (0 1 2 3 4 5 6 7 8 9) do (
     md d:\DiplomDa4a\p0%%a%%b%%c%%d%%e 1>nul 2>&1
     for %%i in (1 2 3 4 5 6 7 8 9 10 11 12) do (
      echo F|>nul xcopy d:\Diplom3\%%i\%%i_0%%a%%b%%c%%d%%e.jpeg d:\DiplomDa4a\p0%%a%%b%%c%%d%%e\%%i_0%%a%%b%%c%%d%%e.jpeg
)
echo PASSED: %%a%%b%%c%%d%%e
)))))
echo NUMERICAL CAPACITY EXHAUSTED, PROCESS TERMINATED
pause
0
887 / 189 / 16
Регистрация: 18.07.2011
Сообщений: 260
13.05.2012, 19:53
Вот тоже самое без рекурсии. Будет работать в разы быстрее:
Даже такой вариант слишком тяжелый, т.к. имя новой папки напрямую связано с именем файла, а файлы имеют однотипные названия.
Вот мой вариант:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
set dir_in=d:\Diplom3
set dir_out=d:\DiplomDa4a
for /f "delims=`" %%I in ('dir /s/b %dir_in%\*.jpeg') do call :copy %%I
exit /b
 
:copy
set name=%~n1
set num=%name:~-4%
echo F| xcopy "%~1" "%dir_out%\%num%\%name%.jpeg"
exit /b
Первая и последняя строка не обязательны.
А вторую и третью можно напрямую подставить в скрипт, тогда они тоже будут не нужны.
Итого 7 обязательных строчек
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.05.2012, 19:53
Помогаю со студенческими работами здесь

Как сделать батник который внезависимости от того где он находиться, запускает другой батник
Как сделать батник который в независимости от того где он находиться, запускает другой батник start BLaa.batЭто стандартный запуск...

Как сделать так, чтобы батник запускал батник на другом компьютере по локальной сети?
Как сделать что бы батник запускал батник на другом компьютере по локальной сети?

Как создать батник, который создает батник с командами?
Уже знаю, что такая тема была, но до конца не понял. Как создать батник, который создаст батник с командами? К примеру то, что должно в...

Батник, который пингует указанный IP-адрес и в случае отсутствия пинга запускает другой батник и закрывается
Доброго времени суток, столкнулся с проблемой ... нужен батник который будет пинговать айпишник к примеру 192.168.10.14, в отсутствии пинга...

Сортировщик
Всем привет ;) Писал прогу на C++ в деве (причем не особо удачно), недавно узнал, что нужно оказывается сделать эту программу с графическим...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru