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

Выполнение команд параллельно, но не более N одновременно

28.03.2017, 17:12. Показов 7642. Ответов 4

Студворк — интернет-сервис помощи студентам
Приветствую, прошу помощи с написанием bat скрипта. Необходимый функционал:
Из файла (txt) запускает команды (запуск exe + флаги, каждая команда с новой строки). Отслеживает кол-во запущенных в текущий момент и запускает недостающее число до N. Основная трудность в том, что каждый запущенный процесс имеет отличное время жизни от других, следствием - необходимость отслеживать кол-во работающих через список процессов (название процесса - example.exe). Таким образом, скрипт должен поддерживать кол-во работающих процессов = N.
Для лучшего понимания привожу пример:
В каждой строке файла содержится команда на архивацию определенной папки (размеры всех папок разные, соответственно и время архивации тоже), скрипт стартует 10 первых команд и ждет (N в данном случае = 10) . Как только 1 из процессов завершается, стартует следующий (чтобы кол-во запущенных было = N), согласно порядку в .txt файле (тоесть с 11-й строки) и так далее, до исчерпания команд в текстовике.
На Linux'e использовал GNU Parallel, который полностью удовлетворял потребности, альтернативу на win, увы, не нашел, если кто знает - прошу подсказать.

Буду крайне благодарен за любою помощь в решении данной задачи
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.03.2017, 17:12
Ответы с готовыми решениями:

Выполнение нескольких команд одновременно
Есть необходимость, что-бы программа не отвлекалачь на ввод переменной, а продолжалая свой цикл. Какие команды помогут мне с этим

Выполнение макроса в двух и более книгах одновременно
Здравствуйте форумчане! Вот встала нужда выполнять макрос на двух и более книгах одновременно, если возможно будет в 10 открытых книгах...

Реально ли организовать выполнение 2-х и более операций одновременно
Добрый вечер. Такой вопрос. Программа работает в консоли. Реально ли на си в организовать выполнение 2-х и более операций. К примеру, в...

4
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
28.03.2017, 17:59
Цитата Сообщение от Scrudg Посмотреть сообщение
Как только 1 из процессов завершается, стартует следующий
Ну так именно так и происходит:
запускается первая команда на архивацию, которая запрягает архиватор, который делает свою работу и пока он не закончит, вторая и следующие команды на вынужденном перекуре
аль не так надобно?
Если нужна параллель и при этом архиватору сунуть сразу несколько папок (а размер-то их разный из ваших слов), никакой гарантии уже нет что из этой кучи заархивируется быстрее (от файлов сильно будет зависеть) и какая уж тут очередность в задуманном порядке и назвать этот процесс параллельной работой я сильно затрудняюсь
ваш ход ...
0
0 / 0 / 0
Регистрация: 29.03.2016
Сообщений: 11
28.03.2017, 18:31  [ТС]
Архиватор привел лишь в пример. Поочередное выполнение не устраивает, необходимо именно параллельное, но не более/менее N процессов одновременно т.е по завершению старых необходимо запускать новые чтоб кол-во запущенных было = N . Может есть какие-либо идеи как это реализовать?
0
Любознательный
 Аватар для YuS_2
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
28.03.2017, 18:42
Цитата Сообщение от Scrudg Посмотреть сообщение
Поочередное выполнение не устраивает, необходимо именно параллельное
зависит от программы, т.е. можно получить псевдо-параллельность:
Windows Batch file
1
2
3
4
5
start "" "programm.exe"
start "" "programm.exe"
start "" "programm.exe"
start "" "programm.exe"
...
и отслеживать наличие процессов командой tasklist, а циклом подсчитывать количество... в зависимости от результата осуществлять переход на метку...

ну, а истинную параллельность можно получить в powershell (3.0)...
0
0 / 0 / 0
Регистрация: 29.03.2016
Сообщений: 11
28.03.2017, 18:49  [ТС]
Все верно, только вот bat'ы сложнее start/kill/wait писать не умею, из-за чего и создал тему Был бы крайне благодарен за помощь в написании самого скрипта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.03.2017, 18:49
Помогаю со студенческими работами здесь

Запуск нескольких команд в отдельных окнах параллельно
Здравствуйте. Имеются несколько команд например: ping mail.ru -t ping i.ua -t tracert google.com ping yandex.ru -t Как...

Выполнение одновременно несколько sql запросов одновременно
Здравствуйте. Есть проблема! Пролистал много сайтов и форумов и толком ничего не нашел. Суть проблемы указана в заголовке но все равно...

Выполнение хранимой процедуры (последовательно или параллельно?)
Добрый день. Есть хранимая процедура, в которой содержатся запросы на выборку, вставка и update записей. Скажите пожалуйста, как...

Как организовать выполнение двух различных задач параллельно
Здравствуйте. Есть у меня такая проблема. Никак не могу понять как организовать выполнение 2х различных задач параллельно. Есть...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru