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

Копирование каталогов в подкаталоги при частичном совпадении имени каталога

12.03.2023, 18:03. Показов 658. Ответов 4

Студворк — интернет-сервис помощи студентам
Счастья, здоровья!

Не нашел в поиске по форуму готового решения, да даже в TCPU73, в разных попавшихся прогах синхронизации и бэкапа, так что не бейте если повторяюсь, лучше прикрепите линк.

Задача:

Скопировать папку "100 abc" из "Папка1" в "Папка2\Подпапка_ldf\100 jui",
Скопировать папку "101 abc" из "Папка1" в "Папка2\Подпапка_ldf\101 fgh",
Скопировать папку "101 1 abc" из "Папка1" в "Папка2\Подпапка_fgr\101 1 ddf",
Скопировать папку "302 abc" из "Папка1" в "Папка2\Подпапка_sld\302 gkt",
...
Скопировать папку "994 abc" из "Папка1" в "Папка2\Подпапка_slo\994 lkd",

Пример результата: "Папка2\Подпапка_slo\994 lkd\994 abc"

Маска совпадения папок по первым трем цифрам, иногда например "101 1", но менее критично, их меньше и можно в ручную



Только дайте пожалуйста разжеванный ответ или код с небольшим комментом, при всем уважении, день убил на поиски решения и как в жопу ужаленный щас убегаю и все равно половину накопленных дел не успею

Добавлено через 31 минуту
Если упростит задачу, то листинг и сопоставление составить несложно, вида:

Родительская папка;дочерняя папка (в подкаталогах)
100 A;100 СС
101 A;101 ВС
101 1 A;101 1 СF
994 A;994 SA

С подкаталогами уже мартышкин труд, вида
100 A;*BB\100 CC
101 A;*BB\101 FC
101 1 A;*KL\101 1 CF
994 A;*NB\994 SA

Добавлено через 1 час 48 минут
*Если упростит задачу, то листинг и сопоставление мне составить несложно в list.txt или list.csv
Повторюсь, без каталогов верхнего уровня дочерней папки, уровень вложенности 2
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.03.2023, 18:03
Ответы с готовыми решениями:

Копирование файлов при совпадении названия в имени файла
Добрый день. Помогите создать bat файл. Есть больщая папка с множеством в ней других вложенных папок и файлов. В могут содержаться файлы с...

Поиск идентификатора при частичном совпадении критерия поиска ПОИСКПОЗ
Здравствуйте дорогие форумчане! У меня возникла такая проблема. Имеется таблица данных (см. файл Пример2 вкладку "Таблица...

Осуществить поиск при частичном или полном совпадении введенного куска текста
Здравствуйте нужно осуществить поиск при частичном или полном совпадении введенного куска текста в edit все что совпало должно подсветиться...

4
 Аватар для Angry Old Man
3005 / 745 / 313
Регистрация: 26.03.2022
Сообщений: 1,394
Записей в блоге: 1
13.03.2023, 14:25
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
36
37
38
@Echo Off &cls
    Set "BoxIn=Z:\Папка 1" 
    Set "BoxOut=Z:\Папка 2" 
    Call :Build
    For /F "usebackq tokens=1,2* delims=_=" %%i In (`Set "@From"`) Do (
        Call :Check "%%@To_%%j%%" "%%k" &&(
            Call Echo Xcopy /D /Y "%%k\*.*" "%%@To_%%j%%\%%~nxk\"
            Call Xcopy /D /Y "%%k\*.*" "%%@To_%%j%%\%%~nxk\"
        )
    )
Pause
Exit /B
 
:Check
    If %1=="" (Echo ??? Output folder for input folder %2 not found &Exit /B 1)     
Exit /B
 
:Build
    For /F "usebackq delims=" %%d In (`2^>nul Dir /B /A:D "%BoxIn%\" ^|Sort /R ^|FindStr /I /R /C:"^[0-9][0-9][0-9] [0-9] [^0-9].*"`) Do (
        Set "Name=%%d"
        Call Set "@From_%%Name:~0,5%%=%BoxIn%\%%d"
    )
 
    For /F "usebackq delims=" %%d In (`2^>nul Dir /B /A:D "%BoxIn%\" ^|Sort /R ^|FindStr /I /R /C:"^[0-9][0-9][0-9] [^0-9].*"`) Do (
        Set "Name=%%d"
        Call Set "@From_%%Name:~0,3%%=%BoxIn%\%%d"
    )
 
    For /F "usebackq delims=" %%d In (`2^>nul Dir /B /A:D /S "%BoxOut%\" ^|Sort /R ^|FindStr /I /R /C:"\\[0-9][0-9][0-9] [0-9] [^0-9].*$"`) Do (
        Set "Name=%%~nxd"
        Call Set "@To_%%Name:~0,5%%=%%d"
    )
 
    For /F "usebackq delims=" %%d In (`2^>nul Dir /B /A:D /S "%BoxOut%\" ^|Sort /R ^|FindStr /I /R /C:"\\[0-9][0-9][0-9] [^0-9].*$"`) Do (
        Set "Name=%%~nxd"
        Call Set "@To_%%Name:~0,3%%=%%d"
    )
Exit /B 0
Цитата Сообщение от max_ioi Посмотреть сообщение
Только дайте пожалуйста разжеванный ответ
Это выше моих сил, я ваятель, а не писатель. Что-то конкретное - спрашивайте.
ПропишИте свои пути.
0
0 / 0 / 0
Регистрация: 12.03.2023
Сообщений: 3
14.03.2023, 07:35  [ТС]
Code
1
2
Переменная среды @From не определена
Для продолжения нажмите любую клавишу . . .
В коде менял только букву диска, кодировка батника OEM 866
0
 Аватар для Angry Old Man
3005 / 745 / 313
Регистрация: 26.03.2022
Сообщений: 1,394
Записей в блоге: 1
14.03.2023, 09:42
Цитата Сообщение от max_ioi Посмотреть сообщение
Переменная среды @From не определена
Значит, нет папок, указанных Вами названий типа
100 abc (то есть трицифры пробел перваябукваитд)
101 1 A (то есть трицифры пробел цифра пробел перваябукваитд)

Для отладки вставьте строку после определения BoxIn BoxOut, получившийся файл "C:\bat.txt" приложите к сообщению, если сами не найдёте причину.

Windows Batch file
1
2
3
4
5
6
7
8
9
@Echo Off &cls
    Set "BoxIn=Z:\Папка 1" 
    Set "BoxOut=Z:\Папка 2" 
 
>"C:\bat.txt" (Echo ---- "%BoxIn%" &Echo ---- "%BoxOut%" &Echo. &Dir /B /S /A:D "%BoxIn%" "%BoxOut%")
 
    Call :Build
.......................
.......................
0
0 / 0 / 0
Регистрация: 12.03.2023
Сообщений: 3
14.03.2023, 23:04  [ТС]
Понял ошибку, по моему примеру названий папок в шапке все работает идеально.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
---- "G:\Џ 1" 
---- "G:\Џ 2" 
 
G:\Џ 1\100 abc
G:\Џ 1\101 1 abc
G:\Џ 1\101 abc
G:\Џ 1\944 3D
G:\Џ 2\SUBЇ1
G:\Џ 2\SUBЇ2
G:\Џ 2\SUBЇ3
G:\Џ 2\SUBЇ1\100 ўj¤ggg
G:\Џ 2\SUBЇ1\101 1 ¤Ґi
G:\Џ 2\SUBЇ1\100 ўj¤ggg\100 abc
G:\Џ 2\SUBЇ1\101 1 ¤Ґi\101 1 abc
G:\Џ 2\SUBЇ2\101 bac
G:\Џ 2\SUBЇ2\101 bac\101 abc
G:\Џ 2\SUBЇ3\944 вҐб
Слишком бегло смотрел код, показалось что например тут:

Code
1
2
3
4
"^[0-9][0-9][0-9] [^0-9].*"
"@From_%%Name:~0,3%%=%BoxIn%\%%d"
"\\[0-9][0-9][0-9] [^0-9].*$"
"@To_%%Name:~0,3%%=%%d"
.. в названии папки 3 цифры в начале и следующие символы любые.

Ближе к реальности структура такая:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
---- "G:\Џ ЇЄ  1" 
---- "G:\Џ ЇЄ  2" 
 
G:\Џ ЇЄ  1\100 3D
G:\Џ ЇЄ  1\101 1 3D
G:\Џ ЇЄ  1\101 3D
G:\Џ ЇЄ  1\944 3D
G:\Џ ЇЄ  2\SUBЇ1
G:\Џ ЇЄ  2\SUBЇ2
G:\Џ ЇЄ  2\SUBЇ3
G:\Џ ЇЄ  2\SUBЇ1\100 Great pic H1,H2 10-15 6
G:\Џ ЇЄ  2\SUBЇ1\101 1 Great pic H.7 15-20 6
G:\Џ ЇЄ  2\SUBЇ2\101 Legacy_from_previous7
G:\Џ ЇЄ  2\SUBЇ3\944 Wow chk-88
"100 3D" где 3D постоянная для всех исходящих папок, подходит "^[0-9][0-9][0-9] [0-9][^0-9].*", или "^[0-9][0-9][0-9] 3D.*" ?
Для входящих "100 Great pic H1,H2 10-15 6" не понимаю.

Понимаю что теперь на простейшем месте спотыкнулся, с радостью покурил бы маны, но не целиком, быстро конкретная инфа не нашлась
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.03.2023, 23:04
Помогаю со студенческими работами здесь

Копирование файлов при совпадении названия
Добрый день. Помогите создать bat файл. Есть большая папка с множеством в ней других вложенных папок и файлов. В могут содержаться файлы с...

Копирование данных при совпадении значения
Приветствую! Имеется задача. Существует список значений и таблица с данными. Необходимо осуществить поиск по всем значениям (перебором) и...

Замена файла в zip архиве при совпадении имени
Есть несколько excel файлов. например, 1.xls, 2.xls, 3.xls Есть куча zip архивов. например, A (1.xls), B (1.xls,5.doc,3.doc), C (3.xls),...

При совпадении имени остальные поля заполнить автоматически
Привет всем! я вообще не шарю в MS Access, поэтому я здесь. Мне необходимо создать бузу данных, в которой будут отражены паспортные...

Проблемы с запросом из нескольких таблиц при совпадении имени полей
Здравствуйте. Собственно сабж. Структура табл. kat CREATE TABLE IF NOT EXISTS `kat` ( `kod_kat` int(11) NOT NULL AUTO_INCREMENT, ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
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 https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
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. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru