Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Dragokas
Эксперт WindowsАвтор FAQ
16927 / 7012 / 851
Регистрация: 25.12.2011
Сообщений: 10,808
Записей в блоге: 16
#1

Структура кода Batch-файла - CMD/BAT

16.04.2013, 00:45. Просмотров 3950. Ответов 0
Метки нет (Все метки)

Структура кода Batch-файла:
1. Batch-файл (по-другому его еще называют BAT ("бат") CMD ("си-эм-ди") )
обычно должен иметь такую структуру:

Bash
1
2
3
4
5
6
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
echo Основной код
pause
exit /B
::Конец основной подпрограммы
при этом :: - двойные двоеточия - это знаки начала комментария.
Их можно использовать для описания своего кода.
Внимание: внутри цикла for их использовать нельзя. Вместо этого пишите команду Rem.

SetLocal - означает, что все переменные будут локальными и после выхода из Batch-файла обнулятся.
EnableExtensions - означает возможность использования дополнительных ключей команд.
EnableDelayedExpansion - означает возможность использовать восклицательные знаки (!variable!) для раскрытия значения переменной внутри цикла.

Код также может состоять из подпрограмм, например:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
echo Основной код
::Вызываем подпрограмму Sub1 и передаем ей число 12 в качестве 1-го аргумента
Call :Sub1 "12"
pause
exit /B
::Конец основной подпрограммы
 
:Sub1
::Текст подпрограммы1
::Отображаем на экране 1-й аргумент, переданный подпрограмме (~ - тильда - означает удалить кавычки)
echo.%~1
::exit /B означает - возврат в точку, откуда была вызвана данная подпрограмма (строка № 6 кода).
Exit /B
Все действия над переменными внутри подпрограммы являются глобальными и распространяются на основной код и другие подпрограммы.

Подпрограмма может работать и как функция, возвращая значение:

Bash
1
2
3
4
5
6
7
8
9
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
Call :Sub1
Echo Функция вернула значение %ERRORLEVEL%
pause
exit /B
 
:Sub1
Exit /B 10
Вот еще классическое написание подпрограмм и вариант, как возвращать значение из функции:
http://www.cyberforum.ru/cmd-bat/thread824574.html#post4342641
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 00:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Структура кода Batch-файла (CMD/BAT):

Выделить Batch-код из кода гибридного пакетного файла
Вопрос к Koza Nozdri и наверное к Dragokas. Как отсюда @echo off SetLocal...

Перевести строку кода с Bash на Batch
вот необходимый мне код нашел, хотелось в DOS перевести... $find . -print0...

Перевод кода с циклами с Java на Batch
Всем привет, помогите пожалуйста перевести эту строчку в CMD-код, уже сколько...

Написать batch файл для копирования файла по сети
Нужно написать batch файл, который бы с локальной сети копировал данные(таблицу...

Настройка интерфейса командного файла через Batch Enhancer
Подскажите пожалуйста как сделать меню для командного командного файла,...

При запуске batch-файла от Администратора текущая директория меняется на system32
Как сделать так, чтобы запущенный от имени Админа батник устанавливал (или...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2013, 00:45
Привет! Вот еще темы с решениями:

На основе кода REG-файла написать код BAT-файла
Всем Доброго Дня, попрошу вас меня понять) мне необходимо сделать батник из...

Эвристика на Batch
http://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BD%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1...

Batch Screensaver
Возникла идея написать скринсэйвер на бат. Допустим просто поставить картинку...

Perl vs Batch
запустил. на 10 000 000 строк. прошло 18 минут, полёт нормальный, все приборы...


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

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

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