Меню Рубрики

Операторы командной строки windows

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

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

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

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

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

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

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

Для примера, утилита 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 и даже цикл.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Спасибо за внимание. Автор блога Владимир Баталий

Источник

Основные возможности командной строки (CMD) Windows

В этой статье описаны основные возможности командной оболочки Windows. Это полезно знать и использовать для написания скриптов.

Основы

Описание

CMD — это командная оболочка операционных систем Windows. Она работает в двух режимах: интерактивном (используется взаимодействие с пользователем) и пакетном (для написания сценариев и программ).

  • содержится во всех ОС Windows по умолчанию, поэтому никакого дополнительного ПО не требуется устанавливать для ее использования
  • написан пакетный файл в 90% случаев заработает на любой ОС Windows
  • есть системные скрипты используемых операционная система в своей работе и зная основы CMD вы сможете легко их понимать и редактировать под свои нужды
  • научившись использовать командную оболочку для написания скриптов вы сможете с таким же успехом использовать ее в интерактивном режиме, для работы и обслуживания ОС Windows
  • удобно писать небольшие сценарии и программы для обслуживания операционной системы
  • в интернете материалов и примеров использования этой оболочки достаточно для того, чтобы изучить основы работы и тонкости использования этого программного обеспечения
  • возможности CMD довольно ограничены и написать серьезный проект будет трудно

Запуск

Для запуска командной оболочки нужно открыть Пуск\Все программы\Стандартные\Командная строка или нажать Пуск и в поиске ввести команду cmd . После запуска откроется окно командной строки.

Помощь

Для помощи существует команда help . Набрав ее вы получите список команд и их краткое описание. Для детального описания команды интересующей вас нужно ввести help , или /?

Утилита echo и вывод команд

Утилита echo выводит сообщение на экран и переключает режим отображения команд на экране. Результатом команды

будет вывод на экран

Для вставки пустой строки используется команда

Режим отображения команд на экране.

При включении данного режима на экран выводятся не только результаты команд но и сами команды. При написаны скриптов этот режим используется для их отладки. команда

без параметров показывает статус режима вывода команд на экран (включен или выключен).

По умолчанию режим вывода команд на экран включен. Для того чтобы его выключить введите следующую команду

Для включения режима вывода команд на экран введите

Этот режим можно включать и выключать как для целого скрипта так и его частей, вставляя эти команды в соответствующие места кода.

Для включения этого режима для одной команды перед ней нужно вставить символ @.

Для того, чтобы в скрипте выключить режим отображения команд на экран поместите следующую команду на начало сценария

Операторы командной строки

Результаты выполнения команды можно передать другой команде, или записать в файл. Рассмотрим операторы командной строки.

команда1 | команда2 — результат получен после выполнения команды1 служить входным параметром для команди2, удобно использовать для передачи данных между командами

Операторы перенаправления результатов выполнения > >> :

[путь] имя файла — команда принимает содержимое файла как входной параметр

[путь] имя файла — результат выполнения команды будет записано в файл, если файл не существует он будет создан, если файл существует он будет перезаписан

> [путь] имя файла — результат выполнения команды будет записано в файл, если файл не существует он будет создан, если файл существует результат допишеться в конец файла

[путь] имя файла> [путь] имя файла — данные с первого файла передадутся команде как параметр, а результат выполнения команды будет записан во второй файл

команда1 & команда2 — последовательное выполнение команд, сначала выполнится команда1, а затем команда2

команда1 && команда2 — команда2 исполнится только в случае успешного выполнения команды1

команда1 || команда2 — команда2 исполнится только в случае, если команда1 завершилась с ошибкой

(команда1 & команда2) && команда3 — группировка команд, команда3 исполнится только в случае, если команда1 и команда2 выполнятся успешно

Математические выражения.

+ — добавление
— вычитание
/ — деления
* — умножение
% — модуль
+= — увеличение и присвоения на соответствующее число
-= — уменьшение и присвоения на соответствующее число
*= — умножение и присвоения на соответствующее число
/= — деление и присвоение на соответствующее число

== — равно
EQL — ровное
NEQ — не равно
LSS — меньше
LEQ — меньше или равно
GTR — более
GEQ — больше, или равно

Побитовые операторы (работа с двоичными данными).

Комментарии

Для того чтобы оставить комментарий в коде сценария используется команда rem

Работа с переменными

Описание работы с переменными в командной строке.

Команда set

За работу со сменными отвечает команда set .

Для просмотра всех созданных переменных нужно ввести команду set без параметров.

Для просмотра значения конкретной переменной нужно ввести команду

Для просмотра всех переменных которые начинаются test (например переменные test1, test2 и т.д.) нужно ввести команду

Версия Windows и архитектура системы

ver — команда выводит версию операционной системы.

Версія ОСОС 1.04Windows 1.02.11Windows 2.03Windows 3.04.0.950Windows 954.00.1111Windows 95 OSR24.00.1381Windows NT 4.04.10.1998Windows 984.10.2222Windows 98 SE4.90.3000Windows ME5.00.2195Windows 20005.1.2600Windows XP5.2.3790Windows XP Professional x64 EditionWindows Home ServerWindows Server 2003 5.2.3790.1180Windows Server 2003, Service Pack 15.2.3790.12186.0.6000.16386 Windows Vista, RTM (Release to Manufacturing)6.0.6000Windows VistaWindows Server 20086.0.6001Windows Vista SP1Windows Server 2008 SP16.0.6002Windows Vista SP2Windows Server 2008 SP26.1.7600.16385Windows 7, RTM (Release to Manufacturing)Windows Server 2008 R2, RTM (Release to Manufacturing)6.1.7600Windows 7Windows Server 2008 R26.1.7601Windows 7 SP1Windows Server 2008 R2 SP16.2.9200.16384Windows 8, RTM (Release to Manufacturing)6.2.9200Windows 8Windows Server 20126.3.9600Windows 8.1Windows Server 2012 R2

Для определения архитектуры компьютера существует переменная PROCESSOR_ARCHITECTURE , для ее вывода введите команду

x86 — 32-битная версия Windows

AMD64 — 64-битная версия Windows

Примеры

Копирование новых файлов из одной папки в другую

Задача следующая. Есть локальная папка в которую Медок делает резервные копии баз данных раз в определенный период (через планировщик Медка настроено в пн-пт в обед 13:10), из этой папки нужно копировать новые файлы в сетевую папку на случай выхода из строя локального компьютера » колонки для компьютера. Основное условие, это копирование только новых файлов, которые появились в локальной папке с бэкапа.

Для этой задачи есть команда replace которую нужно использовать с ключом /A .

Вот пример скрипта который копирует новые файлы из локальной папки в сетевую

123456789101112131415161718192021222324252627@echo offrem Путь к локальной папкеset localbackupdir=pathtolocaldirrem Путь к сетевой папкеset remotebackupdir=pathtoremotedir�ь к робочей папкеset workdir=pathtoworkdirrem Путь к папке с логамиset logdir=pathtologdirrem Название лога который содержит дату созданияset logname=log-%date:

3,2%.txt rem Запуск проверокrem Проверка существует ли папка с локальними бекапамиif exist «%localbackupdir%» (echo verification 1 is complited > «%logdir%\%logname%») else (mkdir «%localbackupdir%»)rem Проверка существует ли папка для логовif exist «%logdir%» (echo verification 2 is complited >> «%logdir%\%logname%») else (mkdir «%logdir%»)rem Проверка существует ли сетевая папкаif exist «%remotebackupdir%» (echo verification 3 is complited >> «%logdir%\%logname%») else (echo error 10: remote backup directory «%remotebackupdir%» is not exist >> «%logdir%\%logname%» & exit 10) rem Запуск копированияcd /d «%workdir%» || (echo error 11: problem is workdir «%workdir%» >> «%logdir%\%logname%» & exit 11)replace «%localbackupdir%\*» «%remotebackupdir%» /A >> «%logdir%\%logname%»if errorlevel 1 (echo error 13: replays is over whith error %errorlevel% >> «%logdir%\%logname%» & exit 13) echo replays is complited >> «%logdir%\%logname%»exit 0

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Опера сильно грузит процессор windows 7
  • Опера с яндексом для windows xp
  • Опера не отвечает windows 7
  • Опера нагружает процессор windows 7
  • Опера закрывает панель задач windows 7