Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
wildwolf007
17 / 26 / 0
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
1

Циклический запуск батника с изменяемыми параметрами

08.04.2012, 17:44. Просмотров 1685. Ответов 5
Метки нет (Все метки)

Есть цикл FOR который запускает другие батники с определенными параметрами.

При запуске батника с определенными параметрами запускается внутри тела цикла запускаемый батник, и таким образом батник с параметром 1 не запустится пока не закончится батник с параметром 0.

for %%t in (1,2,3,4,5,6,7,8,9,10) do (

call 1.bat %t 0
call 1.bat %t 1


)

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


Рассматривал вариант с использованием команды START, но тогда выскакивает отдельное окно что не есть? то что нужно... или может возможно просто скрыть данное окно не отображать процесс запуска отдельного батника через start????

for %%t in (1,2,3,4,5,6,7,8,9,10) do (

start 1.bat %t 0
start 1.bat %t 1


)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2012, 17:44
Ответы с готовыми решениями:

Удаленный запуск батника
Собственно с самим процессом разобрался. Делаю это через winrs. Проблема возникла при...

Запуск батника на ОС выше ХР
Ребят, как реализовать? Уж не помню почему, но батник на ХР и ниже не работает. Нужно при запуске...

Запуск батника на хосте
Здрям! :) Есть сетка из 50 ПК. Есть задача получить информацию об установленном софте. Ходить...

Запуск батника в домене
Добрый день коллеги!!! Есть рабочий батник по тихой установки Tight VNC(удаленное управление). ...

Запуск батника в назначенное время
Возникла задача запускать батник в назначенное время. Раньше было сделано в запуск по расписанию от...

5
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
08.04.2012, 19:26 2
... или может возможно просто скрыть данное окно ...
Код
start /b file.bat
оно?
А вообще читая ваши посты про реализацию объемной задачи батниками возникают мысли типа:
"- Может применить какой другой программистский инструмент?" Если по условиям задачи вы ограничены встроенными средствами windows то можно посмотреть на WSH (VBscript/Jscript) с WMI - правда они уже не развиваются, последняя версия 5.6; или на PowerShell - по слухам крутая вещь, позволяет вызывать функции .NET Framework?
1
wildwolf007
17 / 26 / 0
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
08.04.2012, 21:47  [ТС] 3
В принципе все уже реализовано на батнике и все работает достаточно исправно. И в любой момент можно что-то подправить ... Пока силами батников все реализовал прям ниче все получилось спасибо за помощь бывает сложное все сделал а такую элементарщину в подстановке одного символа и не хватает ...

СПАСИБО БОЛЬШОЕ!!!!

Добавлено через 1 минуту
А по поводу PowerShell посмотрю спасибо за идею я думал круче батников на языке сценариев ничего нет !!! Ну плюс батника я считаю что нет необходимости компилировать все открыто !

Добавлено через 1 час 4 минуты
Еще Вопрос если одновременно запустить один батник с разными параметрами они будут друг другу мешать ? ну типа параметры присваеваем одним и тем же переменным ?

Добавлено через 42 минуты
Вот еще вопрос:
Что если start 1.bat запустится с параметром 1 0 и начнет обработку пройдет цикл и повторно запустится с таким же параметром ???????? и потом еще раз запустится они друг другу с одними переменными не будут мешать ?

:start
for %%t in (1,2,3,4,5,6,7,8,9,10) do (

start 1.bat %t 1
start 1.bat %t 0


)
goto :start
0
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
09.04.2012, 12:03 4
чтобы посмотреть как взаимодействуют вызванные через start батники я написал и два простых:
Код
@echo off

set v=3
echo v=%v%

start test.bat
start /i test.bat

pause
Код
@echo off

set /a v=v+1
echo v=%v%

pause
exit
test.bat - это второй батник. При клике на первый батник соответственно создаются три окна консоли: в первом переменная - 3, во втором - 4, в третьем - 1, выходит что команда
start test.bat без параметра /i передает создаваемому окну копию своей среды, где переменная v=3, поэтому и во втором окне v=4; а в третьем окне, запущенном командой start /i test.bat v=1 видимо параметр /i создает "чистую" с нуля среду для такого окна.
Выходит чтобы внеочередно запускаемые батники оказывались в равных "стартовых условиях" можно попробовать запускать их с параметром /i
А мешать они друг другу по видимому будут если использовать setx (будь он неладен) вместо set
0
wildwolf007
17 / 26 / 0
Регистрация: 11.10.2011
Сообщений: 379
Завершенные тесты: 1
09.04.2012, 22:13  [ТС] 5
Да я уже понял что мешают они друг другу будут конкретно. На работе чуть не угробил все таким запуском... Видимо ничего не остается как последовательный запуск каждого батника и пока не выполнится запускать следующий лучше не нужно...
Наверное лучше оптимизировать процесс обнаружения файлов в папке произвести запуск батника. Вот подумал можно сделать так:

for %%a in (010) do (

if /i %%a == 010 (
dir /a-d /b "E:\OTDEL\%%a\OUT\CA\0034.077" 1>nul 2>nul && ( call :START_CA %%a 0034.077 CA )
)

:START_CA
call E:\SERVER\BAT\AUTO_TECOS\BAT\5_SEND_CA.bat %1 %2 %3
call E:\SERVER\BAT\AUTO_TECOS\BAT\6_MOVE_CA.bat %1 %2 %3
exit /b

)

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

Описать это на другом языке, а я вот начал думать в принципе те же грабли только сбоку... так например что можно изменить в алгоритме обработке опраса папок все так же как и тут ...
0
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
10.04.2012, 13:35 6
...структура каталогов из которой собираются файлики на сервер...
эта процедура нагружает сетевые карты, свтчи и диски сетевых компов, здесь скорость обработки программы процессором (будь то скрипт или двоичный код) не имеет значения.
Для увеличения скорости работы такого скрипта можно уменьшить задержку (sleep 5000) или вообще убрать её, минимизировать работу с сетью: кэшировать (копировать) файлы из сетевых папок компов на сервер однократно и на нем уже обрабатывать.
А использовать другой язык программирования имеет смысл если в нем есть возможность получать сообщение (прерывание) по событию появления нового файла в (сетевой) папке чтобы сразу его обработать - тогда не нужен цикл опроса (polling loop).
0
10.04.2012, 13:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2012, 13:35

Запуск батника из Autorun.inf
Всем привет, не поможете решить проблемку? имеется комп с неправильно редактированным реестром,...

Запуск батника из google drive
запуск батника из google drive. Возможно ли? Если возможно то как? Спасибо!

Как отследить запуск батника?
Как? tasklist показывает только новый conhost.exe и cmd.exe. А надо узнать какой пакетный файл...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru