![]() |
Как сдедать выполнение команды только после выполнения куска кода?
Собственно, символ & означает, чтобы в конструкции команда1 & команда2 команда 2 выполнялась только после завершения команды 1.
Мне нужно упорядочить выполнение кода блоками, т.е. чтобы второй блок команд выполнялся только после завершения первого блока команд. конструкция типа ( ... . ... ) & ( ..... ..... ) не работает как правильно то? |
Цитата:
"&" просто позволяет иногда объединить несколько строк в одну - не более того Цитата:
|
возможно он не работает изза вложенности. у меня там типа:
( (...)&(...) .... )&( (...)&(...) .... ) или вложенность тоже должна работать? = ) |
Ingolder, не вижу принципиальной разницы, давайте конкретный пример:
Код:
@echo off |
С моей точки зрения, если речь идёт о неких блоках, логично оформить их в виде процедур - читаемость кода лучше, особенно если речь идёт о какой-то вложенности (правда, что под этим подразумевается, от меня пока ускользает).
Код:
@Echo off Call :Comm1|Call :Comm2|Call :Comm3 Работает тоже, как, впрочем и Call :Comm1 & Call :Comm2 & Call :Comm3 Цитата:
:Comm2 Call :Comm1 Echo Здесь команды второго блока GoTo :EOF Использование процедур позволяет компоновать код достаточно гибко и читаемо. |
Так, товарищи, вы меня не понимаете потому что по ходу я не понимаю, чем отличается вот такая конструкция
команда1 команда2 вот от такой: команда1 & команда2 Насколько я понимаю, в первом случае командная строка инициирует исполнение команды1, и после этого инициирует исполнение команды2, не дожидаться завершения команды1, а во втором случае она запускает команду 2 только после завершения команды1. У меня есть: команда1 команда2 команда3 команда4 Мне нужно чтоб : -команда 2 выполнилась только после завершения команды1 -команда 4 выполнилась только после завершения команд 1, 2 и 3. Как это сконструировать? ((команда1 & команда2) команда3) & команда 4 так будет работать? или как правильно? amel27, кажется это то, о чём вы и говорили. |
Цитата:
Код:
Set a=11 & Set b=12 Цитата:
Цитата:
Используйте оператор "&&" - для выполнения команды, только после удачного завершения предыдущей... |
Цитата:
Цитата:
Но здесь нужно сделать оговорку. Если команда 1 некий запускаемый файл, то он может порождать дочерний процесс и закрыть основной процесс не дожидаясь завершения дочернего процесса. Команда 2 ждет завершения именно основного процесса команды 1 и после его закрытия запускается команда 2 хотя фактически дочерний процесс команды 1 может еще продолжаться. Если Вы имеете дело именно с такими командами, то блоки и & здесь вряд ли помогут. Цитата:
Код:
команда1 |
Огромное спасибо всем отписавшимся! За всё - За примеры и объяснения.
Вопрос прояснился. :) |
Время: 20:01. |
Время: 20:01.
© OSzone.net 2001-