Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Dragokas
Эксперт WindowsАвтор FAQ
16600 / 6985 / 845
Регистрация: 25.12.2011
Сообщений: 10,781
Записей в блоге: 16
#1

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

16.04.2013, 00:45. Просмотров 3903. Ответов 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-файла (CMD/BAT):

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

Перевести строку кода с Bash на Batch - CMD/BAT
вот необходимый мне код нашел, хотелось в DOS перевести... $find . -print0 -name "*.php" | xargs -0 grep -l...

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

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

написать batch файл для копирования файла по сети - CMD/BAT
Нужно написать batch файл, который бы с локальной сети копировал данные(таблицу Excel), в определенное время (в 9:00 утра), и отправлял...

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

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

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

Perl vs Batch - CMD/BAT
запустил. на 10 000 000 строк. прошло 18 минут, полёт нормальный, все приборы и датчики в норме. более ждать не могу, ухожу, о конечном...

Batch Screensaver - CMD/BAT
Возникла идея написать скринсэйвер на бат. Допустим просто поставить картинку на весь экран как заставку. А при нажатии любой клавиши,...

Эвристика на Batch - CMD/BAT
http://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BD%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D...


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

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

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