Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/98: Рейтинг темы: голосов - 98, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 13.12.2020
Сообщений: 2

Начало работы с Bat файлами

25.12.2020, 22:01. Показов 19034. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я не какой-то гуру в этих ваших bat/cmd файлах, но столкнувшись лицом к лицу с проблемой недостатка объяснений элементарных действий в bat-cmd файлах. Поэтому я решил, что следует написать небольшое руководство по этим самым элементарных функциях. Я буду рад, если вы сможете указать на недочеты данной статьи и поможете мне продолжить улучшать эту статью.
1) Написать bat-файл, который будет принимать информацию и использовать её в своих целях. Пример, пользователем вводится имя, а программа использует его, чтобы поприветствовать пользователя, использовав имя, которые пользователь ввел. Пример такой программы:
1. @echo off //Эта команда отключает ненужную глазу информацию
2. chcp 1251 > nul //Эта команда делает текущую кодировку на 1251
3. set /p option=Enter your name:
####Разберем эту команду поподробнее:
####= - оператор присваивания;
####set – команда;
####/p - модификатор, который нужен для того, чтобы дать указания команде, что мы считывает значение переменной с клавиатуры. Так же есть модификатор /a. Этот модификатор, говорит о том, что справа от оператора присваивания будет происходить некая операция;
iv. option - название переменной, надо учитывать, то, что пробелы тоже считаются за символ;
v. Enter your name: - текст, который будет выведен в консоль, он никак не влияет на значение переменной.
4. Echo Hello %option%
Echo – команда, которая выводит текст в консоль (запись Ehco Hello эквивалентна printf(“Hello”));
Hello – текст, который будет выведен в консоль;
%option% - значение переменной. Тут важно сказать, что для того, чтобы взять значение этой переменной нужно «запроцентить» эту переменную (echo option не равно echo %option%).
5. echo %option% >> result.txt
Echo – команда, которая выводит текст в консоль;
%option% - значение переменной.
>> - оператор, который перемещает значение переменной в текстовой файл. Есть всего 4 похожих оператора: >>, >(например, это оператор удаляет все содержимое файла, и только после этого вносит туда поправки), <<, <;
6. Pause
Эта команда дожидается нажатия на любую из клавиш.


2) Bat-файл должен запустить текст/картинку/песню/и др в ПО, которое у вас указанно для этого по умолчанию. Это можно реализовать всего одной командой:
start result.txt
Этот оператор позволяет нам открыть любой файл в программе для него по умолчанию синтаксис операции start <путь к файлу>.<расширение>, если файл лежит в одной папке с bat файлом, то можно писать start <имя файла>.<расширение>.

3) Возможности таких команд как: команда очищения экрана и команда всплывающего окна (Popup window) будут продемонстрированы ниже:
@echo off
chcp 1251 > nul
echo Hello World!
pause

эта команда отчищает консоль
cls
открывает Popup окно с сообщением Clear!
msg * Clear!
Pause

4) Теперь мы научимся писать более сложные программы на языке консоли. Мы будет использовать условные операторы и метки. Перед тем, как перейти к коду надо пояснить что такое метка.
Метка, простыми словами, это указатель на какую-то часть кода. Метка создается и вызывается очень просто, для создания метки надо использовать двоеточие «:», а для того, чтобы перейти к метке надо использовать команду goto(рус. Перейти к), название этой команды говорит само за себя. Пример создания метки :newpoint – при такой записи в файле будет создана метка с именем point. Пример обращения к метке goto :newpoint – при переходе к этой команде будет осуществлен переход из текущей точки выполнения программы, к точке, в которой находится метка.
С помощью команды goto и условного оператора можно самостоятельно создать "псевдофункции" и "псевдоциклы".
Теперь про условные операторы. Условный оператор выглядит как if <переменная1> оператор <переменная2> <что требуется сделать>. Существует 6 операторов:
1. EQU и == – равно;
2. NEQ – не равно;
3. LSS – меньше;
4. LEQ – больше;
5. GTR – меньше или равно;
6. GEQ – больше или равно.
Так же существует возможность группировки команд, например если вам надо после условия выполнить сразу несколько действий. Для этого используются круглые скобочки «(<тут может быть больше одного действия>)».
@echo off
chcp 1251 > nul
echo ^>This is a test
echo ^>If you want to do math type 1 and press enter
echo ^>If you want to see a picture type 2 and press enter
set /p option=
if '%option%' == '1' goto :math

if – условный оператора
'%option%' – кавычки необязательны, они используются для того, чтобы показать, в данном случае, оператору сравнения, что сравниваются переменные с именами "%option%" и "1". Суть этого в том, что пробел считается символом в названии переменной, то есть, "%option%==1" и "%option% ==1(обратите внимание на пробел между процентом и первым знаком равно)" будут работать по разному. Вообще, использование кавычек иногда вызывает сбои в работе программы, поэтому их использование не желательны, в данном коде же это написано для примера.
== - оператор сравнения
goto – команда перехода к метке
:math – метка
if '%option%' == '2' start apple.png
:math
echo 2+2
pause
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2020, 22:01
Ответы с готовыми решениями:

Начало работы с файлами bmp
Доброго времени суток Друзья, подскажите литературу или просто сайт, где можно почитать о bmp файлах (интересует все :)) На форуме...

В ярлыках браузеров emorhc.bat rehcnual.bat xoferif.bat erolpxei.bat
В ярлыках браузеров встроились вирусы и при открытии открывается реклама

Технология работы с файлами. Технология работы с типизированными и нетипизированными файлами
Запись имеет вид: фамилия, пол, год рождения и рост. Вывести данные о самом высоком спортсмене.

5
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.12.2020, 23:33
Цитата Сообщение от Avocadic38 Посмотреть сообщение
следует написать небольшое руководство
Ты опоздал лет на 20. Все возможные руководства давно написаны - тебе нужно научиться гуглить.
Ну а батники больше никому особо не нужны (ну кроме тех, чей календарь завис где-то 2005-м). Ну что можно делать батниками? copy\move\cd\echo.
Как-то так...
Живи настоящим - мир уже другой.
1
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
27.12.2020, 16:09
Цитата Сообщение от Avocadic38 Посмотреть сообщение
поможете мне
не заниматься ерундой, по причине которую указал Garry Galler и чтобы писать руководства надо иметь очень хороший уровень знаний, а тут на паре десятков строчек уже несколько ошибок и все в одной куче, совершенно не информативно и очень поверхностно даже для начального уровня.
1
0 / 0 / 0
Регистрация: 13.12.2020
Сообщений: 2
29.12.2020, 09:42  [ТС]
Возможно, но на первом курсе мой преподаватель не дал даже такой информации, а лабораторные по batch файлам заставлял писать. Я просто хотел помочь, может таким же ребятам, у которых такие же проблемы. Эта тема не нацелена на супер пупер охват и имеет только такой прикладной характер к шаражке какой-нибудь.

Добавлено через 2 минуты
Да, скорее всего так и есть, но это помогло, например, моим одногруппникам. При том, что я создал эту тему, думая, что смогу её в дальнейшем раскрывать и отредактировать её, но оказалось, что тут нет такой возможности.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
29.12.2020, 21:48
Цитата Сообщение от Avocadic38 Посмотреть сообщение
но это помогло, например, моим одногруппникам.
Проблема твоего поколения в том, что вы не умеете гуглить, хотя родились в эпоху, когда поисковики уже существовали.
Достаточно набрать: Windows CMD batch syntax и получишь массу ссылок на туториалы, мануалы, книги, примеры и т.д.
Некоторые сайты как ss64 сами по себе являются агрегаторами ссылок на ресурсы по cmd\bacth.
Но как гуглит твое поколение? цэмэдэ каманда как написат. Результат очевиден.

P.S. Даже здесь на форуме все это уже есть. Но ты даже не попробовал найти.
0
 Аватар для volodin661
6793 / 2290 / 348
Регистрация: 10.12.2013
Сообщений: 7,899
30.12.2020, 03:46
Garry Galler, а вот сейчас ты сделал обидно )

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

Оне не виноват, что у них там на кафедре живут упоротые деды-отморозки,
которые на 21-ом году 21-го века заносят в программу обучения изучение цэмэдэ.
С другой стороны ( бывает полезно заглянуть и с другой стороны), если в МИФИ есть кафедра теологии,
то почему бы и не поизучать cmd, чтоб быть, так скаать, в общей струе.

передайте на кафедру дедушкам для внесения в методичку:

интерпретатор CMD ОС Windows

1) Предназначен для последовательного исполнения встроенных инструкций ( команд )
из текстового файла ( этот текстовый файл имеет расширение .bat или .cmd )
  • dir ( операции с файлами )
  • mkdir ( операции с файлами )
  • del ( операции с файлами )
  • copy ( операции с файлами )
  • cd ( операции с файлами )
  • rename ( операции с файлами )
  • move ( операции с файлами )
  • set вспомогательные инструкции
  • echo вспомогательные инструкции
  • if вспомогательные инструкции
  • for вспомогательные инструкции
  • shift вспомогательные инструкции
    ...
а также для запуска исполняемых файлов Windows ( как системных, так и пользовательских )
  • xcopy.exe
  • regedit.exe
  • setx.exe
  • find.exe
  • findstr.exe
  • sort.exe
  • tasklist.exe
  • wmic
  • wscript
  • cscript
    ...
    my_application.exe

интерпретатор cmd оставлен в системе для совместимости.

Основным инструментом автоматизации OS Windows является оболочка powershell.
Начиная с 2016-го года, данный инструмент доступен и для других опер. систем ( Linux, MacOS )
В соврем. системах Windows powershell играет очень важную роль(*) и будет нами тщательно изучен в течение 1-го учебного года.


(*) В отличие от традиционных оболочек других ОС ( bash, zsh, ksh итд) [по состоянию на 2021 год] powershell абсолютно уникален и значительно превосходит последние по своим возможностям.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.12.2020, 03:46
Помогаю со студенческими работами здесь

: Технология работы с файлами. Технология работы с типизированными и нетипизированными файлами.
Запись имеет вид: фамилия, пол, год рождения и рост. Вывести данные о самом высоком спортсмене.

Технология работы с файлами. Технология работы с типизированными и нетипизированными файлами.
Запись имеет вид: фамилия, пол, год рождения и рост. Вывести данные о самом высоком спортсмене

Управление bat-файлами
В подсетке имеется несколько компьютеров один из них управляющий, на других установлена программа VLC, которую необходимо запустить с...

Работа с bat файлами
У меня есть прога 123.bat,она находится на сьемном диске F. Мне нужно скопировать ее в C:\Logs\ если папка есть(если нет создать). ...

Работа с bat и exe файлами!
Нужно передать значения из bat-ка в exe-ник. exe-ник написан на С++, то есть калькулятор... Задание: Разработать процедуру (и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru