Урок 2 по CMD — операторы командной строки

Урок 2 по CMD — операторы командной строки Командная строка

В этой статье мы рассмотрим базовые операторы cmd командной строки ввода-вывода данных, математические выражении, а также операторы, которые позволяют объединить несколько команд.

Командная строка позволяет передавать значения или данные не только в консольном окне, но и за его пределами. Так, можно перенаправить результат выполнения утилиты в файл, или же наоборот, извлечь данные хранящиеся во внешнем файле и передать их как параметры.

Давайте посмотрим на следующие операторы командной строки:

  • Команда1 | команда2 – результат, полученный после выполнения команды1 будет служить как входной параметр для команды2.
  • Команда<[путь] имя файла – Тут команда принимает содержимое файла как входной параметр.
  • Команда>[путь] имя файла – Результат выполнения команды будет выведен не на экран консоли, а во внешний файл. Если указанного внешнего файл нет, то он будет создан, если файл существует – произойдет его перезапись.
  • Команда>>[путь] имя файла – Аналог предыдущей команды, но тут, если файл существует, до данные допишутся в конец уже имеющихся в нем данных.
  • Команда<[путь] имя файла> [путь] имя файла – в данном примере, данные, из внешнего файла передаются команде как параметры, а вывод результата будет направляться в другой внешний документ.
операторы командной строки

Как вы уже заметили, перенаправление данных осуществляется с помощью четырех операторов (cmd) командной строки: вывод (>, >>) и ввод (< ,<<), при чем, если стрелочка используется в комбинации с файлом один раз, то произойдет его полная перезапись, если дважды – то произойдет дописывание данных. Если не указывать полный путь, а просто прописать имя файла, то он создастся в той папке, из которой происходит запуск команды.

Теперь давайте обратим внимание на оператор конвейеризации (“|”), он довольно удобен, так как позволяет передавать результат выполнения из одной команды сразу в другую, а из той в третью и так далее.

Для примера, утилита dir позволяет получить список файлов и папок, а утилита find отвечает за поиск в документах, или в тексте ввода и выводит строки, соответствующие условию. Так, следующая команда покажет список всех файлов с расширение .txt в текущем каталоге:

dir|find".txt"

В данном случае утилита dir возвращает список файлов и папок в текущем каталоге, данный список передается как входной параметр утилите find (сотрите статью «Утилита FIND«), и уже в этом списке происходит поиск вхождения “.txt”.

Следующие операторы командной строки, которые стоит рассмотреть, это &, && и ||:

  • Команда1 & Команда2 – сначала выполнятся Команда1, а уже потом Команда2
  • Команда1 && Команда2 — Команда2 будет выполняться только в том случае, если произошло успешное выполнение Команды1
  • Команда1 || Команда2 — Команда2 будет выполняться только в том случае, если Команда1 не смогла выполниться.
  • (Команда1 & Команда2) && Команда3 – Тут с помощью круглых скобок происходит группирование Команды1 и Команды2, если данная группа команд выполнится успешно, произойдет выполнение Команды3.
  • (Команда1 & Команда2) || Команда3 — Тут с помощью круглых скобок происходит группирование Команды1 и Команды2, если данная группа команд не выполняется, произойдет выполнение Команды3.

Как видим, операторы командной строки (cmd), приведенные выше позволяют значительно сэкономить программный код и в некоторых случаях заменить условный оператор if и даже цикл.

Стоит учитывать один важный момент. При выполнении группы команд, их обязательно стоит заключать в круглые скобки, иначе произойдет совсем другой результат, чем ожидалось. Посмотрим на следующий пример:

dir & ipconfig & hostname>d:\work\log.txt

Сперва покажется, что в файл log.txt должно вывестись содержимое текущего каталога, настройки сети и имя компьютера, но это не так! Файл будет содержать только результат выполнения команды hostname. Что бы все сработало правильно, нужно все три команды заключить в круглые скобки:

(dir & ipconfig & hostname)>d:\work\log.txt

Хорошо теперь давайте рассмотри математические операторы cmd (командной строки). Как и в зыках программирования vbscript и jscript сервера Windows Script Host, в сценариях cmd присутствуют следующие математические выражения:

  • арифметические операторы – выполнение рядовых математических операций (+ (сложение), — (вычитание), * (умножение), /(деление), % (модуль));
  • операторы присваивания – знак равенства без или с арифметическими операциями.
  • операторы сравнения – отвечают за сравнение между собой двух операндов, как правило, используются в условном операторе if.
  • побитовые операторы – работа с двоичными данными.

Что бы произвести математическое вычисление, нужно использовать ключевое слово set с ключом (арифметика). Это связано с тем, что любое значении, которое присваивается переменной будет типа “строка”, а ключ /А говорит системе, что мы хотим работать с цифрами. Откройте редактор и пропишите в нем следующий код, далее сохраните как test.bat:

@echo off
set/A var1=100+25
echo%var1%
set/A var1=100-25
echo%var1%
set/A var1=25*5
echo%var1%
set/A var1=100/3
echo%var1%

Что бы вам не приходилось делать дополнительные переходы, а вы могли запустить сценарий из любой директории в окне командной строки, просто пропишите:

Path %PATH%;<путь>

Тут <путь> — путь к каталогу, в котором вы храните свой сценарий.

Вернемся к примеру, в данному примере с помощью ключевого слова set мы объявляем переменную var1, которая будет хранить сумму чисел 100 и 25, после происходит вывод результата на экран. Далее мы используем остальные математические операции с подальшим выводом результата.

Диапазон поддерживаемых цифр от -2 в 32 степени до 2 в 32 степени, при выходе за эту границу, возникнет ошибка с кодом -2. Можно проводить вычисления не только с цифрами, но и со значениями переменных:

@echo off
set var2=100
set var3=200
set/A var1=(%var2%+%var3%)/2
echo %var1%

В данном случае мы сначала объявляем две переменные, var2 со значением 100 и var3 со значением 200, потом в переменной var1 происходит сложении значений двух переменных, и деление результата на два с подальшим его выводом на экран.

Полезную роль могут сыграть операторы сравнения:

  • += (сложение и присваивание)
  • -=  (вычитание и присваивание)
  • *= (умножение и присваивание)
  • /= (деление и присваивание)
  • %= (деление по модулю и присваивание)
операторы cmd

Подобные операторы применяются и в языке jscript и позволяют вместо такой строки:

Set/A var1=var1+5

прописать такую:

Set/A var1+=5

И так, в этой статье мы рассмотрели базовые cmd операторы командной строки.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий