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

Поместить батник в каждую подпапку в папке и запустить его

15.04.2017, 13:00. Показов 6792. Ответов 41

Студворк — интернет-сервис помощи студентам
Есть задача: собрать данные эксперимента из папки с подпапками 1 уровня.
Данные получены с помощью скоростной видеокамеры и датчика давления.
Имена файлов и папок содержат условия серии опытов.

Из разных тем форума мною собран батник, который
1. В папке, где находится, выполняет нужные мне действия
2. Перемещается на уровень выше.
Имя батника all_data_in_series.bat

В дополнение хотелось бы другой батник, которой
1. Помещал all_data_in_series.bat поочередно в каждую подпапку в папке, где он находится.
2. Запускал его.

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

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
39
40
41
42
43
44
45
46
47
@echo off
SetLocal EnableExtensions
chcp 1251
 
:: определяем имя главной папки 
:: батник находится уровнем ниже в ее подпапке
for %%i in ("%~dp0\..") do set "Mainfolder=%%~nxi"
 
:: В папке с батником
set fullpath=%~dp0
set fullpath=%fullpath:~0,-1%
set units="%fullpath:\=" "%"
 
:: соединяем все тестовые файлы с масками _izm, _Sbros, _TimeOut и _cenz
:: результат сортировки объединенного файла = файл с именем папки, где находится батник
:: промежуточный файл удаляем
for %%a in (%units%) do set folder=%%~a
>nul copy /b *_izm.txt + *_Sbros.txt + *_TimeOut.txt + *_cenz.txt "000_all.txt"
>nul sort 000_all.txt > "%~dp0%folder%.txt"
del /q 000_all.txt
 
:: если итоговый файл не пустой
:: при необходимости создаем папку и отправляем туда файл
:: созданная папка находится в главной папке, дублируя ее имя, но с меткой _Press
:: если пустой, то подчищаем за собой
for %%i in ("%~dp0%folder%.txt") do (
  if not %%~zi==0 (
  if not exist "%~dp0\..\%Mainfolder%_Press" md "%~dp0\..\%Mainfolder%_Press"
@for %%i in ("%~dp0%folder%.txt") do @move /Y %%i "%~dp0\..\%Mainfolder%_Press")  
else (
del /q "%~dp0%folder%.txt")
)
 
:: собираем имена .avi файлов в папке по схожей схеме
Dir /b /a:-d "%~dp0*.avi" > "%~dp0%folder%_avi.txt"
for %%i in ("%~dp0%folder%_avi.txt") do (
  if not %%~zi==0 (
  if not exist "%~dp0\..\%Mainfolder%_LifeTimes" md "%~dp0\..\%Mainfolder%_LifeTimes"
@for %%i in ("%~dp0%folder%_avi.txt") do @move /Y %%i "%~dp0\..\%Mainfolder%_LifeTimes")  
else (
del /q "%~dp0%folder%_avi.txt")
)
 
:: переносим батник в главную папку (уровнем выше)
@for %%i in ("all_data_in_series.bat") do @move /Y %%i "%~dp0\.."
 
exit
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.04.2017, 13:00
Ответы с готовыми решениями:

Запустить батник, не показывая его окна
доброго утра. возможно ли запустить батник не показывая консоль исполнения батника при этом не сильно затратствуя? т.е. я имею ввиду...

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

Батник для поиска файла в папке "Temp" и его запуска
Здравствуйте, коллеги! Встал вопрос, над который подкипела голова. Задача: В 1С при обновлении курсов валют качается файл bnk.exe,...

41
Нарушитель
7166 / 2335 / 353
Регистрация: 10.12.2013
Сообщений: 8,079
25.04.2017, 03:57
Студворк — интернет-сервис помощи студентам
Оставив в сторонке обсуждение загадочной идеи ТС о внедрении рукотворных ватников во
все каталоги и подкаталоги файловой системы, можно его похвалить за доставку на форум
реальной задачи.
Изотермический сброс давления плюс изобарические общие папки - это же как
глоток горного воздуха после мегатонн удушливого бреда, запускаемого сюда под видом насущных задач автоматизации
и реализации с помощью ордена ленина и трудового кр. знамени интерпретатора cmd.

Что касается последнего, то использование cmd, а не powershell в Windows 10 ( я так понял, что именно эта версия используется ТС в качестве рабочей) является просто циничным человеконенавистническим преступлением.

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

Имеющийся на данный момент опыт реализаций подобных задач предусматривает
создание специального загрузчика, который после некоторого разбора заливает в реляционную базу содержимое появляющихся файлов с данными( изобарическими, изотермическими и даже изохорическими, хе-хе ... ).

Идею использования макросов Excel для какого бы то ни было анализа и построения графиков надо нмв тоже вынести за скобки и утопить ( хотя в принципе можно опционально генерировать xlsx файлы из содержимого базы,
но сам Excel для этого нафиг не нужен - сэкономим денюжку, как завещал кот Матроскин ).

Итак, в качестве инструмента в Windows 10 выступает powershell версии 5
и плюс к нему доустанавливается бесплатный SQL Server 2016 SP1 Express edition;
Далее придумывается схема хранения и реализуется загрузчик. на этом пока всё.
1
1 / 1 / 0
Регистрация: 15.04.2017
Сообщений: 25
25.04.2017, 11:04  [ТС]
Не надо сбивать человека, идущего понятными тропками, на путь истинный!
Мне только и надо, что подготовить данные для обработки в Mathcad.

Вручную это делать - вот оно настоящее унижение и, не побоюсь этого слова, вызов для Homo Sapiens.
Все Паскали глубоко и прочно забыты, Дельфи, Си++ и еже с ними неведомы как класс.
Любые, тем более неизученные, возможности - ничто без внятного тех. задания.

Поэтому знакомая среда + чтение разнообразной литературы на родном и буржуйском языках иногда с картинками, но почти всегда с формулами - вот она суровая действительность, продиктованная спецификой работы.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.04.2017, 11:04

Как мне написать скрипт - много папок, в каждой папке нужно создать подпапку
Добрый вечер! Обращаюсь к тем, у кого есть немного свободного времени. Пожалуйста, помогите написать bat-файл. Имеем много папок 0001,...

В каждой из содержащих заданный файл подпапок запустить этот файл, сделав эту подпапку текущим каталогом
Подскажите, почему этот код не работает в цикле for \f @echo off dir /s /b | find "enable_1time_reboot.bat">temp.txt for /F...

Создать подпапку в папке, если есть определенный символ
Есть переменная вида string с содержанием: Folder123456 Нужно при нажатии на кнопку создать папку с названием этой переменной. Ну...

Батник запуска всего, что есть в папке с ним
Есть такой код for /f "tokens=1,2 delims= " %%a in ('dir /b') do echo %%a_%%b >> 1.xml For /F "Delims=" %%I In (1.xml) Do start %%~I ...

Не могу запустить батник
Запускаю батник для установки обновлений вылетает ошибка "фаил не является внутренней или внешней командой", исполняемой программой...


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

Или воспользуйтесь поиском по форуму:
42
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера 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
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru