Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Выход из скрипта по exit

Ответить
Настройки темы
CMD/BAT - [решено] Выход из скрипта по exit

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток!
В примерах часто встречаю завершение пакетного файла путем перевода указателя на конец скрипта, например:
Код: Выделить весь код
@echo off
ver | find "5.1.2600" goto winXP
goto end

:winXP
  echo This is Microsoft Windows XP
  ...

:end
А если я использую exit для выхода, будет какая разница?
Код: Выделить весь код
@echo off
ver | find "5.1.2600" goto winXP
exit

:winXP
  echo This is Microsoft Windows XP
  ...

Отправлено: 13:57, 20-06-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата rene:
А если я использую exit для выхода, будет какая разница? »
Вы можете указать число — код возврата (он же ErrorCode, он же ErrorLevel), который может быть использован родительским процессом или пакетным файлом.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:34, 20-06-2017 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Дело не только в коде возврата, но и корректном закрытии потока с помощью exit и высвобождению сопутсвующих ресурсов, в то время как вызов goto, во-первых, без особой надобности просто портит код, во-вторых, не посылает явным образом сигнал консоли, что все, мол, пора заквадрачиваться. Примерно так. И да, лучше указывать в батах exit /b, чтобы ненароком не закрыть саму консоль (если еще в ней предполагается работать).
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:33, 20-06-2017 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
корректном закрытии потока с помощью exit и высвобождению сопутсвующих ресурсов, в то время как вызов goto … не посылает явным образом сигнал консоли, что все, мол, пора заквадрачиваться. »
Что с exit, что без — по достижении конца пакетного файла его обработка будет завершена. Не могу понять это Ваш посыл.

Отправлено: 16:47, 20-06-2017 | #4


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Iska, не мне Вас учить что cmd - та же программа (интерпретатор), оперирующая данными, под которые, если заглянуть под "капот" также выделяется место в памяти и прочее в этом духе. Оператор goto спректирован несколько кривовато, а потому его использование лучше ограничить областью видимости самого командного файла, а не как инструкцию выхода из последнего.

Отправлено: 17:17, 20-06-2017 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Всё равно не пойму. Вы имеете в виду, что в командный процессор после завершения пакетного файла по exit, по goto :eof и просто по завершении кода пакетного файла освобождает разное количество ранее выделенной на его исполнение оперативной памяти, так?

Отправлено: 17:31, 20-06-2017 | #6


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


greg zakharov, если говорить о проектировании ПО, то корректнее все ветви завершения алгоритма собирать в одну точку выхода, или хотя бы группировать по результативности. Поэтому goto end - это хорошо, а раскиданные по коду exit и goto :eof - плохо.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:35, 20-06-2017 | #7


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Iska, нет. По goto ресурсы освобождаются с некоторой задержкой.
Busla, проектирование ПО и сценарии командной строки - суть разные вещи.

Отправлено: 20:18, 20-06-2017 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Выход из скрипта по exit

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Возможен ли спонтанный выход из строя материнки и ЦП из-за поломки памяти? silalex Материнские платы и память 8 25-10-2013 18:46
VBS/WSH/JS - Изменение скрипта по сбору инфы по железу ZeVSalt Скриптовые языки администрирования Windows 2 26-09-2011 18:54
[решено] Вопрос по TrayItemSetOnEvent: как выйти из скрипта в данной ситуации? evg64 AutoIt 1 07-10-2009 08:16
VBA - выход из цикла иоанн Программирование и базы данных 2 26-05-2009 22:24
Выход из KDE karlison Общий по Linux 8 03-02-2003 09:42




 
Переход