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

Как вытащить нужные файлы и их пути из большого каталога и упорядочить по нужным папкам

02.03.2021, 03:14. Показов 7324. Ответов 76

Студворк — интернет-сервис помощи студентам
У меня есть папка с большом количеством вложенных папок. В каждой папке лежит по четыре файла (в каждой папке у файлов одинаковые имена), из них мне нужен только один файл, с названием 1 copy.png.
Нужно сделать батник, который будет копировать в отдельную папку всю корневую систему и сам файл 1 copy.png, который будет переименовывать и складывать все файлы в зависимости от их корневой папки

Условно говоря, как это выглядит сейчас:
D:/Fast mockups / Prepared / Папки по темам (Допустим фильмы, сериалы, комиксы) / Для каждой папки по теме есть еще одни папки (Допустим, для фильмов это Marvel, DC, Звездные войны и тд по каждой теме) / В каждой папке про Marvel, DC и тд есть папки с рандомными числами (11, 234, 2123) / В каждой папке 4 файла, один из которых нужный мне 1 copy.png

Что требуется:
В папку "D:/Fast mockups / Prepared / For print" должны скинуться все файлы 1 copy.png, в виде папок "* / For print / Все папки тем (Фильмы, сериалы, комиксы) / Каждая папка по определенной теме (Marvel, DC) / каждый файл 1 copy.png из вложенных далее в оригинале папок, только переименованный в Marvel_1 для папки по марвел, в DC_1 для папки по DC и тд."

И еще важная часть... (если её вообще возможно реализовать)

Надо сделать список путей к каждому файлу (в идеале это должен быть txt-файл, который будет лежать в папках по темам (фильмы, сериалы и тд), а в него будут записываться пути до каждого файла во всех вложенных папках...

Понимаю, что прошу слишком многого, а возможно еще и убого объясняю, но мне и правда нужна ваша помощь...
Может кто-нибудь помочь решить данный вопрос?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2021, 03:14
Ответы с готовыми решениями:

Как поменять пути к папкам AndroidStudio?
Android Studio, всё работает, проблем нет. Только в папке "Мои документы" создались андроидные папки .AndroidStudio .android ...

Раскладчик файлов (сохраненных по определенной маске) по нужным папкам
Добрый день. Есть раскладчик, который писался под определенную задачу, но его необходимо слегка переделать. Суть: мы имеем много...

Копирование писем из Outlook по нужным папкам базы Access
Всем здоровья ! Помогите с примером новичку. Нужно рассортировать почту с копированием письма по нужным папкам. Приходят письма ...

76
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 119
03.03.2021, 17:44  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Karen87 Посмотреть сообщение
ну и замечательно
Эх, не все так радужно...(
Я зашел сейчас в другие папки и увидел это... Он размножил первую картинку по непонятному мне принципу...
Миниатюры
Как вытащить нужные файлы и их пути из большого каталога и упорядочить по нужным папкам  
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
03.03.2021, 17:56
ArtMastex, какая из этих картинок "1 copy.png"?

Добавлено через 4 минуты
Первая?
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 119
03.03.2021, 18:00  [ТС]
В этой папке не должны были добавляться файлы, я добавлял их только для фильмов, но в каждой другой первый файл, который в ней находился, размножился
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
03.03.2021, 18:05
ArtMastex, на момент запуска в цифровых подпапках папки FairyTail были файлы "1 copy.png"?
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 119
03.03.2021, 18:07  [ТС]
Цитата Сообщение от Karen87 Посмотреть сообщение
на момент запуска в цифровых подпапках папки FairyTail были файлы "1 copy.png"?
Позвольте заново все протестировать, я уже не помню, что и как было
Если хотите, можете подключиться и пронаблюдать все со мной
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
03.03.2021, 18:10
ArtMastex, потестируйте пока без меня, я вне доступа к компьютеру. Удалите папку for print и проверяйте
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 119
03.03.2021, 18:24  [ТС]
Цитата Сообщение от Karen87 Посмотреть сообщение
потестируйте пока без меня, я вне доступа к компьютеру. Удалите папку for print и проверяйте
Да, ситуация снова повторилась. Я добавил только один макет, но в каждой подпапке for print первый файл размножился столько раз, сколько файлов было в его папке.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
03.03.2021, 18:32
ArtMastex, прикладывайте нормальный архив, а не как вчера (одно фото было) с фотографиями, буду разбираться.
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 119
03.03.2021, 18:34  [ТС]
Цитата Сообщение от Karen87 Посмотреть сообщение
прикладывайте нормальный архив, а не как вчера (одно фото было) с фотографиями, буду разбираться.
Я бы с радостью, только тут размер архива ограничен, куда мне залить, чтобы вы их забрали?
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
03.03.2021, 18:58
ArtMastex, любой общедоступный ресурс (яндекс диск и т.п.)
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 119
03.03.2021, 19:22  [ТС]
Цитата Сообщение от Karen87 Посмотреть сообщение
яндекс диск
https://disk.yandex.ru/d/qP9Q0esYdVppEg
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
03.03.2021, 20:46
ArtMastex, пробуем:
Windows Batch file
1
2
@powershell -executionpolicy bypass -command "$array=@((Get-ChildItem 'D:\Fast mockups\Prepared\*\' -directory -Exclude 'for print').FullName); foreach ($a in $array) {$b=@((Get-ChildItem $a -file -recurse -Include '1 copy.png').FullName); if ($b) {(Get-ChildItem $a -file -recurse -Include '*.png').FullName | out-file """$a\$(split-path $a -Leaf)_пути.txt"""; if (Test-Path """D:\Fast mockups\Prepared\for print\$(split-path $(split-path $a -Parent) -Leaf)\$(split-path $a -Leaf)""") {[int]$((get-childitem """D:\Fast mockups\Prepared\for print\$(split-path $(split-path $a -Parent) -Leaf)\$(split-path $a -Leaf)""" -file).count+1)..[int]$((get-childitem """D:\Fast mockups\Prepared\for print\$(split-path $(split-path $a -Parent) -Leaf)\$(split-path $a -Leaf)""" -file).count+$($b.Count)) | ForEach-Object -Begin {$c=$b.count} {Copy-Item """$($b[[int]($c-=1)])""" """D:\Fast mockups\Prepared\for print\$(split-path $(split-path $a -Parent) -Leaf)\$(split-path $a -Leaf)\$(split-path $a -Leaf)_$($_).png"""}} else {New-Item -ItemType directory """D:\Fast mockups\Prepared\for print\$(split-path $(split-path $a -Parent) -Leaf)\$(split-path $a -Leaf)"""; 0..$($b.Count-1) | ForEach-Object {Copy-Item """$($b[$_])""" """D:\Fast mockups\Prepared\for print\$(split-path $(split-path $a -Parent) -Leaf)\$(split-path $a -Leaf)\$(split-path $a -Leaf)_$($_+1).png"""}}}}"
pause
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 119
03.03.2021, 21:02  [ТС]
Цитата Сообщение от Karen87 Посмотреть сообщение
ArtMastex, пробуем:
Всё еще копирует, только теперь начиная с последнего файла, вот так:

Есть еще просьба: можете убрать нижнее подчеркивание перед цифрой в бывших файлах 1 copy? То есть, чтобы файл 1 copy.png из папки Наруто стал файлом Наруто1.png?
Миниатюры
Как вытащить нужные файлы и их пути из большого каталога и упорядочить по нужным папкам  
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
03.03.2021, 21:16
ArtMastex, все правильно, то есть скопировали первый раз - сформирована структура и все файлы "1 copy.png". Во второй раз берутся файлы с конца (по-моему, совершенно не принципиально) и докопируются к первым, но с возрастающими номерами. Что Вас не устраивает?

Добавлено через 46 секунд
Подчеркивание уберу, не проблема
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 119
03.03.2021, 21:42  [ТС]
Цитата Сообщение от Karen87 Посмотреть сообщение
Что Вас не устраивает?
Я думал, это будет работать, как синхронизация, например:
— Один раз прогнал все файлы, они создали папки и тд, всё хорошо
— Добавил одну или несколько папок с файлами к уже имеющимся
— Запустил еще раз, старые файлы остались нетронутыми, новые добавились и всё.

Тогда можно всё сделать намного проще. Так как скрипт быстрый, можете добавить строчку для удаления папки for prints в начале скрипта? Тогда будет каждый раз новую делать со всеми имеющимися файлами, что в принципе решит мою проблему...

И можете пожалуйста подсказать, как изменить тот скрипт, который вы писали в другой теме, чтобы он создавал в папке Results папки, начиная не с 1, а с 100?
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
03.03.2021, 21:51
Цитата Сообщение от ArtMastex Посмотреть сообщение
Я думал, это будет работать, как синхронизация, например:
— Один раз прогнал все файлы, они создали папки и тд, всё хорошо
— Добавил одну или несколько папок с файлами к уже имеющимся
— Запустил еще раз, старые файлы остались нетронутыми, новые добавились и всё.
Нет, синхронизация и копирование разные вещи. На будущее учитесь максимально чётко доводить свои желания в области автоматизации.
Цитата Сообщение от ArtMastex Посмотреть сообщение
Тогда можно всё сделать намного проще. Так как скрипт быстрый, можете добавить строчку для удаления папки for prints в начале скрипта? Тогда будет каждый раз новую делать со всеми имеющимися файлами, что в принципе решит мою проблему...
Ок, сделаю
Цитата Сообщение от ArtMastex Посмотреть сообщение
И можете пожалуйста подсказать, как изменить тот скрипт, который вы писали в другой теме, чтобы он создавал в папке Results папки, начиная не с 1, а с 100?
Сейчас погляжу
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 119
03.03.2021, 21:54  [ТС]
Цитата Сообщение от Karen87 Посмотреть сообщение
Нет, синхронизация и копирование разные вещи. На будущее учитесь максимально чётко доводить свои желания в области автоматизации.
Извините, полный дилетант в данном вопросе, а мысль о том, что нужный мне процесс по факту является синхронизацией, пришла слишком поздно...
Спасибо!
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
03.03.2021, 22:14
Цитата Сообщение от ArtMastex Посмотреть сообщение
И можете пожалуйста подсказать, как изменить тот скрипт, который вы писали в другой теме, чтобы он создавал в папке Results папки, начиная не с 1, а с 100?
В 26 строчке "1" меняете на "100". Должно получиться:
Windows Batch file
1
xcopy "D:\Fast mockups\Final\*.png" "D:\Fast mockups\Results\100\" && del "D:\Fast mockups\Final\*.png" /f /q
0
0 / 0 / 0
Регистрация: 28.02.2021
Сообщений: 119
03.03.2021, 22:20  [ТС]
Цитата Сообщение от Karen87 Посмотреть сообщение
В 26 строчке "1" меняете на "100". Должно получиться:
Получилось
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
03.03.2021, 22:23
Лучший ответ Сообщение было отмечено ArtMastex как решение

Решение

Цитата Сообщение от Karen87 Посмотреть сообщение
Ок, сделаю
Windows Batch file
1
2
@powershell -executionpolicy bypass -command "$array=@((Get-ChildItem 'D:\Fast mockups\Prepared\*\' -directory -Exclude 'for print').FullName); if (test-path 'D:\Fast mockups\Prepared\for print') {Remove-Item 'D:\Fast mockups\Prepared\for print' -Recurse; foreach ($a in $array) {$b=@((Get-ChildItem $a -file -recurse -Include '1 copy.png').FullName); if ($b) {(Get-ChildItem $a -file -recurse -Include '*.png').FullName | out-file """$a\$(split-path $a -Leaf)_пути.txt"""; New-Item -ItemType directory """D:\Fast mockups\Prepared\for print\$(split-path $(split-path $a -Parent) -Leaf)\$(split-path $a -Leaf)"""; 0..$($b.Count-1) | ForEach-Object {Copy-Item """$($b[$_])""" """D:\Fast mockups\Prepared\for print\$(split-path $(split-path $a -Parent) -Leaf)\$(split-path $a -Leaf)\$(split-path $a -Leaf)$($_+1).png"""}}}} else {foreach ($a in $array) {$b=@((Get-ChildItem $a -file -recurse -Include '1 copy.png').FullName); if ($b) {(Get-ChildItem $a -file -recurse -Include '*.png').FullName | out-file """$a\$(split-path $a -Leaf)_пути.txt"""; New-Item -ItemType directory """D:\Fast mockups\Prepared\for print\$(split-path $(split-path $a -Parent) -Leaf)\$(split-path $a -Leaf)"""; 0..$($b.Count-1) | ForEach-Object {Copy-Item """$($b[$_])""" """D:\Fast mockups\Prepared\for print\$(split-path $(split-path $a -Parent) -Leaf)\$(split-path $a -Leaf)\$(split-path $a -Leaf)$($_+1).png"""}}}}"
pause
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.03.2021, 22:23

Как из Excel вытащить нужные строки и вставить в форму
Доброго времени суток. Было поставлено задание написать именно на WPF небольшую программку. Сам я только начал разбираться в WPF, читаю...

Как вытащить код Каталога Товара
Добрый день, прошу мне помочь, не могу вытащить скрипт каталога товара на сайте Не Спам

Как разбить текстовый файл с переменной на файлы с нужным количеством строк?
Всем доброго времени суток! Столкнулся с такой задачей, нужно автоматизировать процесс: 1) Выгружается файл с переменной частью...

Как добиться загрузки редактора VB6 с нужным расположением окна и с нужным модулем?
Где-то находил решение, но давно да и было не нужно. Сейчас при переходе на работу в Win 10 окно редактора VB6 загружается где-то в боку...

Как сгруппировать XML файлы по папкам?
При создании приложения получилось много XML файлов, в основном все файлы View элементов например - пункт списка, layout файлы, файлы...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru