С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Dragokas
Эксперт WindowsАвтор FAQ
17031 / 7089 / 857
Регистрация: 25.12.2011
Сообщений: 10,914
Записей в блоге: 16
1

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

16.04.2013, 00:45. Просмотров 4084. Ответов 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
Вот еще классическое написание подпрограмм и вариант, как возвращать значение из функции:
Обращение к меткам
2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 00:45
Ответы с готовыми решениями:

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

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

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

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

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

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

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

На основе кода 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...


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

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

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