Структура команды в операционной системе windows

Аннотация: Рассматриваются внутренние команды, поддерживаемые интерпретатором Cmd.exe, и наиболее часто используемые внешние команды (утилиты командной строки). Описываются механизмы перенаправления ввода/вывода, конвейеризации и условного выполнения команд. Даются примеры команд для работы с файловой системой

Оболочка командной строки Windows. Интерпретатор Cmd.exe

В операционной системе Windows, как и в других операционных системах, интерактивные (набираемые с клавиатуры и сразу же выполняемые) команды выполняются с помощью так называемого командного интерпретатора, иначе называемого командным процессором или оболочкой командной строки (command shell). Командный интерпретатор или оболочка командной строки — это программа, которая, находясь в оперативной памяти, считывает набираемые вами команды и обрабатывает их. В Windows 9x, как и в MS-DOS, командный интерпретатор по умолчанию был представлен исполняемым файлом command.com. Начиная с версии Windows NT, в операционной системе реализован интерпретатор команд Cmd.exe, обладающий гораздо более мощными возможностями.

Запуск оболочки

В Windows NT/2000/XP файл Cmd.exe, как и другие исполняемые файлы, соответствующие внешним командам операционной системы, находятся в каталоге %SystemRoot%\SYSTEM32 (значением переменной среды %SystemRoot% является системный каталог Windows, обычно C:\Windows или C:\WinNT). Для запуска командного интерпретатора (открытия нового сеанса командной строки) можно выбрать пункт Выполнить… (Run) в меню Пуск (Start), ввести имя файла Cmd.exe и нажать кнопку OK. В результате откроется новое окно (см. рис. 2.1), в котором можно запускать команды и видеть результат их работы.

Командное окно интерпретатора Cmd.exe в Windows XP

Рис.
2.1.
Командное окно интерпретатора Cmd.exe в Windows XP

Внутренние и внешние команды. Структура команд

Некоторые команды распознаются и выполняются непосредственно самим командным интерпретатором — такие команды называются внутренними (например, COPY или DIR ) Другие команды операционной системы представляют собой отдельные программы, расположенные по умолчанию в том же каталоге, что и Cmd.exe, которые Windows загружает и выполняет аналогично другим программам. Такие команды называются внешними (например, MORE или XCOPY ).

Рассмотрим структуру самой командной строки и принцип работы с ней. Для того, чтобы выполнить команду, вы после приглашения командной строки (например, C:\> ) вводите имя этой команды (регистр не важен), ее параметры и ключи (если они необходимы) и нажимаете клавишу <Enter>. Например:

C:\>COPY C:\myfile.txt A:\ /V

Имя команды здесь — COPY, параметры — C:\myfile.txt и A:\, а ключом является /V. Отметим, что в некоторых командах ключи могут начинаться не с символа /, а с символа – (минус), например, -V.

Многие команды Windows имеют большое количество дополнительных параметров и ключей, запомнить которые зачастую бывает трудно. Большинство команд снабжено встроенной справкой, в которой кратко описываются назначение и синтаксис данной команды. Получить доступ к такой справке можно путем ввода команды с ключом /?. Например, если выполнить команду ATTRIB /?, то в окне MS-DOS мы увидим следующий текст:

Отображение и изменение атрибутов файлов.
ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[диск:][путь]имя_файла] [/S]
  +   Установка атрибута.
  -   Снятие атрибута.
  R   Атрибут "Только чтение".
  A   Атрибут "Архивный".
  S   Атрибут "Системный".
  H   Атрибут "Скрытый".
  /S  Обработка файлов во всех вложенных папках указанного пути.

Для некоторых команд текст встроенной справки может быть довольно большим и не умещаться на одном экране. В этом случае помощь можно выводить последовательно по одному экрану с помощью команды MORE и символа конвейеризации |, например:

В этом случае после заполнения очередного экрана вывод помощи будет прерываться до нажатия любой клавиши. Кроме того, используя символы перенаправления вывода > и >>, можно текст, выводимый на экран, направить в текстовый файл для дальнейшего просмотра. Например, для вывода текста справки к команде XCOPY в текстовый файл xcopy.txt, используется следующая команда:

Замечание

Вместо имени файла можно указывать обозначения устройств компьютера. В Windows поддерживаются следующие имена устройств: PRN (принтер), LPT1–LPT3 (соответствующие параллельные порты), AUX (устройство, присоединяемое к последовательному порту 1), COM1–COM3 (соответствующие последовательные порты), CON (терминал: при вводе это клавиатура, при выводе — монитор), NUL (пустое устройство, все операции ввода/вывода для него игнорируются).

Перенаправление ввода/вывода и конвейеризация (композиция) команд

Рассмотрим более подробно поддерживаемые в Windows UNIX-подобные концепции переназначения устройств стандартного ввода/вывода и конвейерного выполнения команд.

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

  • выводить сообщения программ не на экран (стандартный выходной поток), а в файл или на принтер (перенаправление вывода);
  • читать входные данные не с клавиатуры (стандартный входной поток), а из заранее подготовленного файла (перенаправление ввода);
  • передавать сообщения, выводимые одной программой, в качестве входных данных для другой программы (конвейеризация или композиция команд).

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

Если при этом заданный для вывода файл уже существовал, то он перезаписывается (старое содержимое теряется), если не существовал — создается. Можно также не создавать файл заново, а дописывать информацию, выводимую командой, в конец существующего файла. Для этого команда перенаправления вывода должна быть задана так:

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

Приведем несколько примеров перенаправления ввода/вывода.

  1. Вывод встроенной справки для команды COPY в файл copy.txt:
  2. Добавление текста справки для команды XCOPY в файл copy.txt:
  3. Ввод новой даты из файла date.txt (DATE — это команда для просмотра и изменения системной даты):

Если при выполнении определенной команды возникает ошибка, то сообщение об этом по умолчанию выводится на экран. В случае необходимости сообщения об ошибках (стандартный поток ошибок) можно перенаправить в текстовый файл с помощью конструкции

В этом случае стандартный вывод будет производиться в файл. Также имеется возможность информационные сообщения и сообщения об ошибках выводить в один и тот же файл. Делается это следующим образом:

Например, в приведенной ниже команде стандартный выходной поток и стандартный поток ошибок перенаправляются в файл copy.txt:

XCOPY A:\1.txt C: > copy.txt 2>&1

Наконец, с помощью конструкции

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

Используя механизмы перенаправления ввода/вывода и конвейеризации, можно из командной строки посылать информацию на различные устройства и автоматизировать ответы на запросы, выдаваемые командами или программами, использующими стандартный ввод. Для решения таких задач подходит команда

которая выводит сообщение на экран. Рассмотрим примеры использования этой команды.

  1. Посылка символа прогона на принтер:
  2. Удаление всех файлов в текущем каталоге без предупреждения (автоматический положительный ответ на запрос об удалении):
  3. Соединение по телефону из командной строки (модем связан с портом COM2):
    ECHO ATDT 1(123)555-1234 > COM2
Команды MORE и SORT

Одной из наиболее часто использующихся команд, для работы с которой применяется перенаправление ввода/вывода и конвейеризация, является MORE. Эта команда считывает стандартный ввод из конвейера или перенаправленного файла и выводит информацию частями, размер каждой из которых не больше размера экрана. Используется MORE обычно для просмотра длинных файлов. Возможны три варианта синтаксиса этой команды:

MORE [диск:][путь]имя_файла
MORE < [диск:][путь]имя_файла
имя_команды | MORE

Параметр [диск:][путь]имя_файла определяет расположение и имя файла с просматриваемыми на экране данными. Параметр имя_команды задает команду, вывод которой отображается на экране (например, DIR или команда TYPE, использующаяся для вывода содержимого текстового файла на экран). Приведем два примера.

Для поэкранного просмотра помощи команды DIR используется команда:

Для поэкранного просмотра текстового файла news.txt возможны следующие варианты команд:

MORE news.txt
MORE < news.txt
TYPE news.txt | MORE

Другой распространенной командой, использующей перенаправление ввода/вывода и конвейеризацию, является SORT. Эта команда работает как фильтр: она считывает символы в заданном столбце, упорядочивает их в возрастающем или убывающем порядке и выводит отсортированную информацию в файл, на экран или другое устройство. Возможны два варианта синтаксиса этой команды:

SORT [/R] [/+n] [[диск1:][путь1]файл1] [> [диск2:][путь2]файл2]

или

[команда ] | SORT [/R] [/+n] [> [диск2:][путь2]файл2]

В первом случае параметр [диск1:][путь1]файл1 определяет имя файла, который нужно отсортировать. Во втором случае будут отсортированы выходные данные указанной команды. Если параметры файл1 или команда не заданы, то SORT будет считывать данные с устройства стандартного ввода.

Параметр [диск2:][путь2]файл2 задает файл, в который будет направляться сортированный вывод; если этот параметр не задан, то вывод будет направлен на устройство стандартного вывода.

По умолчанию сортировка выполняется в порядке возрастания. Ключ /R позволяет изменить порядок сортировки на обратный (от Z к A и затем от 9 до 0). Например, для поэкранного просмотра отсортированного в обратном порядке файла price.txt, нужно задать следующую команду:

SORT /R < price.txt |MORE

Ключ /+n задает сортировку в файле по символам n-го столбца. Например, /+10 означает, что сортировка должна осуществляться, начиная с 10-й позиции в каждой строке. По умолчанию файл сортируется по первому столбцу.

Лабораторная
работа № 1

Часть 1. Внешние и внутренние команды

Цель работы– знакомство с
возможностями
интерпретатора командной строки и
командамиMSWindows,
приобретение навыков работы со справочной
системой командного процессораcmd

1. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1.1. Инструменты,
используемые для автоматизации работы
в ОС MS
Windows

1.1.1. Оболочка (интерпретатор) командной
строки command.com/cmd.exe

Во
всех версиях ОС Windows поддерживается
оболочка командной строки (command shell) и
определенный набор утилит. Механизм
работы оболочек командной строки в
разных системах одинаков: в ответ на
приглашение («подсказку», prompt),
пользователь вводит некоторую команду,
после чего оболочка выполняет команду,
выводит приглашение и ожидает ввода
следующей команды.

Наряду с интерактивным режимом работы
оболочки поддерживают и пакетный режим,
в котором система последовательно
выполняет команды, записанные в текстовом
командном файле (файле-сценарии).

Начиная
с версии Windows NT, в качестве оболочки
командной строки используется
интерпретатор Cmd.exe.

1.1.2. Командная оболочка Microsoft PowerShell

Перед
разработчиками новой оболочки, получившей
название Windows PowerShell, стояли следующие
задачи:

  • применение командной строки в качестве
    основного интерфейса администрирования;

  • интеграция командной строки, объектов
    COM, WMI и .NET;

  • работа с произвольными источниками
    данных в командной строке по принципу
    файловой системы.

Основная
идея, реализованная в PowerShell, состоит в
том, что в командной строке вывод
результатов команды представляет собой
не текст (в смысле последовательности
символов), а объект (данные вместе со
свойственными им методами).

1.2 Оболочка командной строки Windows -интерпретатор Cmd.Exe

В ОС Windows, как и в других ОС, интерактивные
команды выполняются с помощью командного
процессора или оболочкой командной
строки (command shell).

1.2.1 Запуск оболочки

Для
запуска командного интерпретатора
(открытия нового сеанса командной
строки) следует выбрать пункт Выполнить…
(Run) в меню Пуск (Start), ввести имя файла
Cmd.exe и нажать кнопку OK. В результате
откроется новое окно (см. рис.
1),
в котором можно вводить команды и видеть
результаты их работы.

Рис. 1 —
Командное окно интерпретатора Cmd.exe в
Windows XP

1.2.2 Настройка
параметров командного окна интерпретатора
Интерпретатор имеет
свой набор опций и параметров настройки.
Просмотр и редактирование этих опций
выполняется с помощью пункта Свойства
управляющего меню окна (нажать правой
кнопкой мыши на заголовок окна). В окне
свойств (см. рис. 2) будут доступны четыре
вкладки с опциями: общие, шрифт,
расположение и цвета.

Рис.
2–окно настройки
свойств интерпретатора

1.2.3. Внутренние и внешние команды. Структура команд

Внутренние
команды распознаются и выполняются
непосредственно самим командным
интерпретатором (например, COPY
или DIR).
Внешние
команды ОС – это отдельные программы,
расположенные в том же каталоге, что и
Cmd.exe, которые Windows загружает и выполняет
аналогично другим программам — например,
MORE
или XCOPY.

Для
выполнения команды после приглашения
командной строки (например, C:\>)
следует ввести имя этой команды (регистр
не важен), ее параметры и ключи (если они
необходимы) и нажать клавишу <Enter>.
Например:

C:\>COPY
C:\myfile.txt A:\ /V

Имя
команды здесь — COPY,
параметры — C:\myfile.txt
и A:\,
а ключом является /V.
Отметим, что в некоторых командах ключи
могут начинаться не с символа /, а с
символа – (минус), например, -V.

Многие
команды Windows имеют большое количество
дополнительных параметров и ключей.
Большинство команд снабжено встроенной
справкой, в которой кратко описываются
назначение и синтаксис данной команды.
Получить доступ к такой справке можно
путем ввода команды с ключом /?.
Например, если выполнить команду ATTRIB
/?,
то в окне будет выведен следующий текст:

Отображение
и изменение атрибутов файлов.

ATTRIB
[+R|-R] [+A|-A] [+S|-S] [+H|-H] [[диск:][путь]имя_файла]
[/S]

+
Установка атрибута.


Снятие атрибута.

R
Атрибут «Только чтение».

A
Атрибут «Архивный».

S
Атрибут «Системный».

H
Атрибут «Скрытый».

/S
Обработка файлов во всех вложенных
папках указанного пути.

Для
некоторых команд текст справки может
быть объемным и занимать более одного
экрана. В этом случае помощь можно
выводить последовательно по одному
экрану с помощью команды MORE
и символа конвейеризации |, например:

XCOPY
/? | MORE

В
этом случае после заполнения очередного
экрана вывод помощи будет прерываться
до нажатия любой клавиши. Кроме того,
используя символы перенаправления
вывода > и >>, можно текст, выводимый
на экран, направить в текстовый файл
для дальнейшего просмотра. Например,
для вывода текста справки к команде
XCOPY в текстовый файл xcopy.txt, используется
следующая команда:

XCOPY
/? > XCOPY.TXT

Вместо
имени файла можно указывать обозначения
устройств компьютера. В Windows поддерживаются
следующие имена
устройств
:
PRN
(принтер), CON (терминал: при вводе это
клавиатура, при выводе — монитор), NUL
(пустое устройство, все операции
ввода/вывода для него игнорируются).

Соседние файлы в папке ОС

  • #
  • #
  • #

1. Оболочка командной строки Windows. Интерпретатор Cmd.exe

В операционной системе Windows, как и в других операционных системах, интерактивные (набираемые с клавиатуры и сразу же выполняемые) команды выполняются с помощью так называемого командного интерпретатора, иначе называемого командным процессором или оболочкой командной строки (command shell). Командный интерпретатор или оболочка командной строки — это программа, которая, находясь в оперативной памяти, считывает набираемые вами команды и обрабатывает их.

Для запуска командного интерпретатора (открытия нового сеанса командной строки) можно выбрать пункт Выполнить… (Run) в меню Пуск (Start), ввести имя файла Cmd.exe и нажать кнопку OK.

Командный интерфейс ОС Windows

1.1 Синтаксис командной строки, перенаправление ввода – вывода

Файловая система имеет древовидную структуру и имена файлов задаются в формате [диск:] [путь\]имя_файла. Если путь начинается с символа «\», то маршрут вычисляется от корневого каталога – иначе от текущего.

Например, c:123.txt задает файл 123.txt в текущем каталоге, c:\123.txt – в корневом, а DOC\123.txt – в подкаталоге DOC текущего каталога.

Существуют особые обозначения для текущего каталога (точка «.») и трех его верхних уровней (две точки «..» — родительский, три «…» — второго уровня и, наконец, четыре «….» — третьего уровня).

Например, для текущего каталога C:\Windows\Media\Office97 путь к файлу autoexec.bat в корневом каталоге диска C: может быть записан в виде ….\autoexec.bat.

В именах файлов (но не дисков или каталогов) можно применять так называемые групповые символы или шаблоны: ? (вопросительный знак) и * (звездочка). Символ * в имени файла означает произвольное количество любых допустимых символов, символ ? — один произвольный символ или его отсутствие. Скажем, под шаблон text??1.txt подходят, например, имена text121.txt и text11.txt, под шаблон text*.txt — имена text.txt, textab12.txt, а под шаблон text.* — все файлы с именем text и произвольным расширением.

Например, DIR /? > helpdir.txt выведет справку по команде DIR в файл. Символ «>>» позволяет не создавать файл заново, а дописать в него. По аналогии символ «<» позволяет читать данные не с клавиатуры, а с файла. Например, DATE < date.txt ввод новой даты из файла.

1.2 Переменные окружения

При загрузке ОС Windows в оперативной памяти постоянно хранится набор т.н. переменных окружения (environment variables). Хотя в Windows есть более совершенный способ для хранения системных значений – реестр, многие программы по-прежнему используют переменные окружения. Наиболее важные переменные хранят системный путь для поиска (PATH), каталог запуска Windows (WINDIR), место хранения временных файлов (TEMP) и многое другое.

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

SET [переменная=[строка]]

Запуск SET без параметров приводит к выводу списка переменных среды. Для получения их значений (всегда строки) нужно имя соответствующей переменной заключить в символы «%», например: %TEMP%.

1.3 Внутренние и внешние команды. Структура команд

Некоторые команды распознаются и выполняются непосредственно самим командным интерпретатором — такие команды называются внутренними (например, COPY или DIR) Другие команды операционной системы представляют собой отдельные программы, расположенные по умолчанию в том же каталоге, что и Cmd.exe, которые Windows загружает и выполняет аналогично другим программам. Такие команды называются внешними (например, MORE или XCOPY).

Рассмотрим структуру самой командной строки и принцип работы с ней. Для того, чтобы выполнить команду, вы после приглашения командной строки (например, C:\>) вводите имя этой команды (регистр не важен), ее параметры и ключи (если они необходимы) и нажимаете клавишу <Enter>. Например:

C:\>COPY C:\myfile.txt A:\ /V

Имя команды здесь — COPY, параметры — C:\myfile.txt и A:\, а ключом является /V. Отметим, что в некоторых командах ключи могут начинаться не с символа /, а с символа – (минус), например, -V.

Многие команды Windows имеют большое количество дополнительных параметров и ключей, запомнить которые зачастую бывает трудно. Большинство команд снабжено встроенной справкой, в которой кратко описываются назначение и синтаксис данной команды. Получить доступ к такой справке можно путем ввода команды с ключом /?.

1.4 Условное выполнение и группировка команд

В командной строке Windows NT/2000/XP можно использовать специальные символы, которые позволяют вводить несколько команд одновременно и управлять работой команд в зависимости от результатов их выполнения. С помощью таких символов условной обработки можно содержание небольшого пакетного файла записать в одной строке и выполнить полученную составную команду.

Используя символ амперсанта &, можно разделить несколько утилит в одной командной строке, при этом они будут выполняться друг за другом. Например, если набрать команду DIR & PAUSE & COPY /? и нажать клавишу <Enter>, то вначале на экран будет выведено содержимое текущего каталога, а после нажатия любой клавиши — встроенная справка команды COPY.

Символ ^ позволяет использовать командные символы как текст, то есть при этом происходит игнорирование значения специальных символов. Например, если ввести в командной строке

ECHO Абв & COPY /?

и нажать клавишу <Enter>, то произойдет выполнение подряд двух команд: ECHO Абв и COPY /? (команда ECHO выводит на экран символы, указанные в командной строке после нее). Если же выполнить команду

ECHO Абв ^& COPY /?

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

Абв & COPY /?

В этом случае просто выполняется одна команда ECHO с соответствующими параметрами.

Условная обработка команд в Windows осуществляется с помощью символов && и || следующим образом. Двойной амперсант && запускает команду, стоящую за ним в командной строке, только в том случае, если команда, стоящая перед амперсантами была выполнена успешно. Например, если в корневом каталоге диска C: есть файл plan.txt, то выполнение строки TYPE C:\plan.txt && DIR приведет к выводу на экран этого файла и содержимого текущего каталога. Если же файл C:\plan.txt не существует, то команда DIR выполняться не будет.

Два символа || осуществляют в командной строке обратное действие, т.е. запускают команду, стоящую за этими символами, только в том случае, если команда, идущая перед ними, не была успешно выполнена. Таким образом, если в предыдущем примере файл C:\plan.txt будет отсутствовать, то в результате выполнения строки TYPE C:\plan.txt || DIR на экран выведется содержимое текущего каталога.

Отметим, что условная обработка действует только на ближайшую команду, то есть в строке

TYPE C:\plan.txt && DIR & COPY /?

команда COPY /? запустится в любом случае, независимо от результата выполнения команды TYPE C:\plan.txt.

Несколько утилит можно сгруппировать в командной строке с помощью скобок. Рассмотрим, например, две строки:

TYPE C:\plan.txt && DIR & COPY /?
TYPE C:\plan.txt && (DIR & COPY /?)

В первой из них символ условной обработки && действует только на команду DIR, во второй — одновременно на две команды: DIR и COPY.

Цитата из статьи про установку рабочего окружения (программ-инструментов) для веб-разработчика со стороны сервера:

npm install express-generator -g

В этом посте я не буду касаться смысла этой команды, используемой в командной строке. Речь про структуру команды вообще.

Почему это может быть интересно?

Посмотрим справку к этой команде с сайта программы «npm», цитата:
https://docs.npmjs.com/cli/v8/commands/npm

npm <command> [args]

https://docs.npmjs.com/downloading-and-installing-packages-globally

npm install -g <package_name>

Меня удивило то, что флаг «-g» можно вставлять в разные места команды (поэтому в примерах выше я отметил его красным цветом) и команда, несмотря на это, сработает одинаково правильно в обоих случаях.

Я стал копать в интернетах по этой теме и нашел много статей, но ни одна из них не объяснила мне вышеописанное как следует. Ну и еще надо понимать, что единого стандарта на структуру командной строки нет, поэтому встречается много разночтений. Разные программы могут обрабатывать команду по-разному, а еще есть разница между операционными системами.

Приглашение (подсказка) и команда в командной строке

В командной строке операционной системы обычно выводится строка-приглашение (по-английски «prompt»), после которой можно вводить команду. Пример в программе «Windows PowerShell»:

PS C:\Users\Илья\source\repos\myapp> npm install express-generator -g

Здесь строкой-приглашением является следующее (она была выведена программой «Windows PowerShell»):

PS C:\Users\Илья\source\repos\myapp>

а командой является следующее (это ввёл я):

npm install express-generator -g

Команды операционной системе и команды программе

Всё, что вводится после строки-приглашения, является командой операционной системе. Название любой команды обычно является глаголом (или содержит глагол). Например, команда операционной системе на создание нового каталога myapp выглядит так:

mkdir myapp

Название команды «mkdir» расшифровывается как «make directory» (по-русски «создать каталог») и содержит глагол «make» (по-русски «создать»).

А как же тогда в эту схему укладывается наша команда из начала поста?

npm install express-generator -g

Здесь «npm» — это существительное (менеджер пакетов). В этом случае операционная система понимает, что должна запустить программу «npm» и передать ей остаток команды. Хоть в этом случае в начале команды глагола нет, но он подразумевается (операционная система понимает, что ей нужно запустить программу, то есть подразумевается глагол «запустить»).

Остаток команды, который передается программе «npm», можно назвать командой программе «npm»:

install express-generator -g

Название этой команды, как и название команды операционной системе, тоже является глаголом: «install» (по-русски «установить»).

Аргументы, параметры, опции, флаги

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

Эти значения можно разделить на две группы. Одни значения передаются как есть, а другим ставятся в соответствие некие имена. Первые обычно называют аргументами (по-английски «arguments» или сокращенно «args»), а вторые — опциями (по-английски «options»). В качестве примера можно рассмотреть команду из начала поста:

npm install express-generator -g

Тут «express-generator» — это аргумент, а «-g» — опция. Вообще, с названиями в разных руководствах может быть путаница и значения из передаваемого набора значений могут называться как угодно: параметрами, аргументами, опциями, флагами. Главное тут — это то, что одни значения передаются как есть («express-generator»), а другие имеют имена («-g»).

Значения, имеющие имена, отмечаются дефисом (по-английски «hyphen») в начале (или двойным дефисом).

Значения, имеющие имена, тоже делятся на две группы: значения булевого типа и остальные значения. Значения, имеющие имена, как видно из их названия, представляют собой пары имя/значение (по-английски «key/value»). В качестве разделителя в паре между именем и значением могут использоваться разные символы: пробел, знак «равно», двоеточие и так далее.

Пример команды, в которой запускается программа «mycli» и в которой этой программе передается в качестве аргумента имя файла «text.txt» как есть (неименованный параметр):

mycli text.txt

Три примера команды, в которой запускается программа «mycli» и в которой этой программе передается имя файла «text.txt» через именованный параметр-опцию (пара имя/значение, имя опции — «file», значение опции — «text.txt»):

mycli --file text.txt
mycli --file=text.txt
mycli --file:text.txt

В каждом из этих трех примеров используется разный разделитель между именем и значением опции (пробел, знак «равно», двоеточие).

Два примера команды, в которой запускается программа «mycli» и в которой этой программе передается именованный параметр-опция булевого типа:

mycli -g
mycli --g

В случае передачи именованного параметра-опции булевого типа значение опции не передается, а передается только имя опции. В данном случае именем опции является буква «g». Почему нет смысла передавать значение опции булевого типа? Потому что само наличие этой опции означает передачу значения «true» (по-русски «истина»). Если эта опция в команде отсутствует, это значит, что программе следует принять в качестве значения этой опции значение «false» (по-русски «ложь»).

Например, если взять нашу команду из начала поста, то наличие в ней опции «-g» означает, что таким образом в программу «npm» передается значение «true» для опции с именем «g» (что означает, что требуется установить пакет глобально):

npm install express-generator -g

Отсутствие этой опции в составе этой команды будет означать, что в программу «npm» передается значение «false» для опции с именем «g» (что означает, что требуется установить пакет локально):

npm install express-generator

Как я уже упоминал выше, именованные значения (пары «имя/значение»), передаваемые в программу, обычно называют «опциями». Опции со значением булевого типа часто называют «флагами».

Одновременная передача нескольких значений

Как программа различит параметры-аргументы, не имеющие имен? Например, если в программу передаются несколько таких значений:

mycli text1.txt text2.txt

Она их может различить только по позиции. Например, программа знает, что с первым переданным ей файлом ей нужно сделать такую-то операцию, а со вторым файлом — другую операцию.

В случае передачи параметров-опций с именами программа различит разные опции по их именам.

Отсюда становится понятным, что параметры-аргументы, не имеющие имен, всегда должны передаваться программе в команде в четко фиксированном порядке. А параметры-опции, у которых есть имена, могут передаваться программе в команде в любом порядке.

Это объясняет, почему опция-флаг «-g» в примере из начала поста может быть расположена хоть перед названием устанавливаемого через программу «npm» пакета, хоть после него. Парсер командной строки внутри программы «npm» сможет разобраться с этой опцией, благодаря наличию у нее имени.

Дополнительное чтение:
https://dev.to/paulasantamaria/command-line-interfaces-structure-syntax-2533
https://en.wikipedia.org/wiki/Command-line_interface

Статья про синтаксис команды в программе «PowerShell»:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_command_syntax
Статья про параметры команд в программе «PowerShell»:
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_parameters

Командный процессор ОС MS WINDOWS cmd.

1.           
Запустить
интерпретатор командной строки

Запускаем интерпретатор командной строки с использованием
команды
cmd.exe

2.           
Увеличить
размер окна интерпретатора и задать цвет фона и цвет шрифта (рекомендуется
синий фон и белый шрифт).

Увеличим размер окна интерпретатора,
стандартно передвигая границы. Нажатием на заголовок окна интерпретатора
откроем окно свойств. Зададим необходимые свойства:

Получаем окно:

3.           
Без
использования текстового редактора создать список из 4-5 слов (например,
фамилий), используя пример 1.

Посмотрим полученный файл с помощью
текстового редактора:

Отсортировать список в алфавитном порядке
и сохранить его в новом
файле.

Посмотрим полученный файл с помощью
текстового редактора:

4.    Создать один текстовый файл,
содержащий справочные сведения по командам
DIR. COPY, XCOPY и TASKLIST. Ознакомиться с назначением, ключами и возможностями команды TASKLIST.

Посмотрим полученный файл с помощью
текстового редактора:

5. Для   бригад   3-4.   Вывести  на   экран   список
выполняющихся  задач,  упорядоченный  по возрастанию
PID (идентификаторов процессов). Заголовки столбцов не
выводить.

6.          
Вывести на
экран список выполняющихся задач, запущенных операционной системой.

7.          
Вывести на
экран список выполняющихся задач, запущенных пользователем.

8.          
Вывести
содержимое указанного в табл.3 каталога по указанному формату на экран.

Таблица 3. Варианты заданий для бригад

Номера бригад

Имя каталога

Что выводить

Сортировать по

Атрибуты файлов и каталогов

4.9

%Windows% и все подкаталоги

Только файлы bmp

По размеру

Только чтение

Для поиска отвечает команда:

Dir c:\windows\*.bmp /s /A:-D /O:S /A:R

Мы видим, что файлов, отвечающих заданным
требованиям не обнаружено. Уберем атрибут «только чтение»

Получим список с расширением bmp в каталоге и подкаталогах WINDOWS отсортированных по размеру.

9. Скопировать имеющиеся в каталоге Windows и его подкаталогах растровые графические
файлы (имеющие расширения .
bmp. jpg.
.
gif, .png) в
каталог
WinGraf на любом доступном диске в соответствии
с таблицей 4. После завершения операции копирования найти общее количество
скопированных файлов и каталогов. Каталог
WinGraf сохранить.

Таблица 4. Варианты заданий для
бригад

Номера бригад

Типы

графических файлов

1.4

Bmp, jpg

Подсчитаем количество файлов

9.          
С помощью
архиватора 7
za.exe
в режиме командной строки заархивировать созданный в п.9 каталог
WinGraf. Оценить степень сжатия (отношение
размера исходного каталога к размеру полученного архива). Архив сохранить.

Первоначальный размер файлов – 42Мб,
размер архива – 35Мв. Степень сжатия – 83%.

Отчеты по работе — индивидуальные с оценкой — по
результатам выполнения заданий 2- 10 на компьютере и ответы на контрольные
вопросы.

3.   КОНТРОЛЬНЫЕ ВОПРОСЫ

1.       
Настраиваемые
свойства интерпретатора
cmd.

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

2.       
Различие
между внутренними и внешними командами. Примеры внешних и внутренних команд.

Внутренние команды распознаются и выполняются
непосредственно самим командным интерпретатором (например.
COPY или DIR). Внешние команды ОС — это
отдельные программы, расположенные в том же каталоге, что и
Cmd.exe, которые Windows загружает и выполняет аналогично другим
программам — например.
MORE или XCOPY.

3.       
Структура
команды интерпретатора.

Для выполнения команды после приглашения
командной строки (например, С:>) следует ввести имя этой команды (регистр не
важен), ее параметры и ключи (если они необходимы) н нажать клавишу —
Enter-.

4.       
Получение
информации о конкретной команде.

Многие команды Windows имеют большое количество дополнительных
параметров и ключей. Большинство команд снабжено встроенной справкой, в которой
кратко описываются назначение и синтаксис данной команды. Получить доспи к
такой справке можно путем ввода команды с ключом ‘?.

5.       
Групповые
символы (шаблоны) и их использование.

В именах файлов (но не дисков или
каталогов) можно применять так называемые групповые символы или шаблоны: ?
(вопросительный знак) и * (звездочка). Символ * в имени файла означает
произвольное количество любых допустимых символов, символ ? — один произвольный
символ или его отсутствие. Скажем, под шаблон
text??l.txt
подходят, например.
HMeHatextl21.txtHtextll.txt. под шаблон text*.txt — имена text.txt. textabl2.txt, а под шаблон text.* — все файлы с именем text н
произвольным расширением.

6.       
Перенаправление
ввода/вывода и конвейеризация команд.

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

выводить сообщения программ не на экран
(стандартный выходной поток;, а в файл или на принтер (перенаправление вывода):

читать  входные  данные  не  с  
клавиатуры   (стандартный   входной   поток),   а  из   заранее подготовленного
файла (перенаправление ввода);

передавать сообщения, выводимые одной
программой, в качестве входных данных для другой программы (конвейеризация или
композиция команд).

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

Если при этом заданный для вывода файл уже
существовал, то он перезаписывается, если не существовал — создается. Можно
также не создавать файл заново, а дописывать информацию. выводимую командой,  в
конец существующего файла. Для этого команда перенаправления вывода должна быть
задана так: команда  >> имя файла

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

1.   Вывод встроенной справки для команды COPY в файл copy.txt:
COPY P. > copy.txt

2.   Добавление текста справки для команды XCOPY в файл copy.txt: XCOPY ? » copy.txt

С помощью конструкции команда!   команда2 можно
использовать сообщения, выводимые первой командой, в качестве входных данных
для второй команды (конвейер команд).

7.       
Условное
выполнение и группировка команд. Назначение символов &. &&. || и 0

В командной строке можно использовать
специальные символы, которые позволяют вводить несколько команд одновременно н
управлять работой команд в зависимости от результатов их выполнения. С помощью
таких символов условной обработки можно содержание небольшого пакетного файла
записать в одной строке и выполнить полученную составную команд)’.

Используя символ амперсанда &. можно
разделить несколько утилит в одной командной строке, при этом они будут
выполняться друг за другом. Например, если набрать команду
DER. & PAUSE & COPY /? н нажать клавиш)’ ,:Enter:, то вначале на экран будет выведено
содержимое текущего каталога, а после нажатия любой клавиши — встроенная
справка команды
COPY. Условная обработка команд в Windows осуществляется с помощью символов
&& и | следующим образом. Двойной амперсанд && запускает
команду, стоящую за ним в командной строке, только в том случае, если команда,
стоящая перед амперсандамн была выполнена успешно. Например, если в корневом
каталоге диска С: есть файл
plan.txt.
то вьшолнение строки
TYPE C:’plan.txt && DIR приведет к выводу на экран этого файла и содержимого
текущего каталога. Если же файл
C:’plantxt не существует, то команда DIR выполняться не будет.

Два символа | осуществляют в командной
строке обратное действие, т.е. запускают команду, стоящую за этими символами,
только в том случае, если команда, идущая перед ними, не была успешно
выполнена.

Отметим, что \*словная обработка действует только на
ближайшую команду, то есть в строке
TYPE С: plaatxt && DIR & COPY /?

команда COPY /? запустится в любом случае, независимо от результата выполнения
команды
TYPE Crplaatxt.

Несколько утилит можно сгруппировать в командной строке с
помощью круглых скобок. В первой из них символ условной обработки
ss действует только на команду DIR,
во второй — одновременно на две команды:
DIR н COPY.

8.         
Команды
для работы с файловой системой — названия и возможности.

Файловая система логически имеет
древовидную структуру и имена файлов задаются в формате [диск:][путь]имя_файла.
то есть обязательным параметром является только имя файла. При этом, если путь
начинается с символа ‘».», то маршрут вычисляется от корневого
каталога, иначе — от текущего каталога. Например, имя С: 123.
txt задает файл 123.txt в
текущем каталоге на диске С:, имя
C:\123.txt — файл 123.txt в корневом каталоге на диске С:, имя ABC 123.txt — файл 123.txt в подкаталоге ABC
текущего каталога.

Существуют особые обозначения для текущего
каталога и родительского каталогов. Текущий каталог обозначается символом .
(точка), его родительский каталог — символами .. (две точки). Например, если
текущим каталогом является С:
WINDOWS, то путь к файлу autoexec.bat в
корневом каталоге диска С: может быть записан в виде ..
autoexec.bat.

9.         
Достоинства
и недостатки команд
COPY и XCOPY. Использованные в работе ключи команды XCOPY.

Команда COPY имеет и недостатки. Например, с ее помощью нельзя копировать
скрытые и системные файлы, файлы нулевой длины, файлы из подкаталогов. Кроме
того, если при копировании группы файлов
COPY
встретит файл, который в данный момент нельзя скопировать (например, он занят
другим приложением), то процесс копирования полностью прервется, и остальные
файлы не будут скопированы.

Команда XCOPY

Команда  XCOPY    предоставляет  больше 
возможностей  при  копировании.   Необходимо отметить, что
XCOPY может работать только с файлами н
каталогами, но не с устройствами. Синтаксис команды:
XCOPY источник   [результат]    ^ключи]

Команда XCOPY имеет множество ключей, далее
приведены лишь некоторых из них. Ключ / 5 позволяет копировать все непустые
подкаталоги в каталоге-источнике. С помощью же ключа  
I можно копировать вообще все подкаталоги, включая и пустые.

10.    
Назначение
команды
ECHO и примеры ее использования.

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

Формат командной
строки:

ECHO [ON | OFF] — включить / выключить режим отображения вводимых команд на экране.

ECHO [сообщение] отобразить текст сообщения на экране.

Примеры
использования:
ECHO — при вводе команды без
параметров, отображается текущий режим отображения команд:
Режим вывода команд на экран (ECHO) включен.

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

echo.

echo Hello World!!! 
вывод сообщения Hello World!!! на экран.

echo %USERNAME% — вывод на экран значения переменной окружения
USERNAME (имени текущего пользователя)

11.    
Команда
DIR. Назначение. Ключи команды DIR и их использование.

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

Формат командной строки: 
DIR [диск:][путь][имя_файла] [/A[[:]атрибуты]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]порядок]] [/P] [/Q] [/S] /T[[:]время]] [/W] [/X] [/4] 

Параметры командной строки: 

[диск:][путь][имя_файла] — Диск, каталог и/или файлы, которые следует
включить в список.

/A —
Вывод файлов с указанными атрибутами:

D Каталоги 

R Доступные
только для чтения

H Скрытые
файлы

A Файлы
для архивирования

S Системные
файлы

Префикс «-» имеет значение НЕ

-S НЕ
системные файлы.

/B —
Вывод только имен файлов.

/C —
Применение разделителя групп разрядов для вывода размеров файлов (по
умолчанию). Для отключения этого режима служит ключ /-C.

/D —
Вывод списка в несколько столбцов с сортировкой по столбцам.

/L —
Использование нижнего регистра для имен файлов.

/N —
Отображение имен файлов в крайнем правом столбце.

/O —
Сортировка списка отображаемых файлов.

Порядок: N По имени (алфавитная), S По
размеру (сперва меньшие), E По расширению (алфавитная), D По
дате (сперва более старые), G Начать список с каталогов. Префикс
«-» имеет значение НЕ

/P —
Пауза после заполнения каждого экрана.

/Q —
Вывод сведений о владельце файла.

/R —
Отображение альтернативных потоков файлов.

/S —
Вывод списка файлов из указанного каталога и его подкаталогов.

/T —
Выбор поля времени для отображения и сортировки

время:

C Создание
(время создания — Create )

Последнее использование (последний доступ — Accsess )

W Последнее
изменение (последняя модификация Write)

/W —
Вывод списка в несколько столбцов.

/X —
Отображение коротких имен для файлов, чьи имена не соответствуют стандарту 8.3.
Формат аналогичен выводу с ключом /N, но короткие имена файлов выводятся слева
от длинных. Если короткого имени у файла нет, вместо него выводятся пробелы.

/4 —
Вывод номера года в четырехзначном формате

Стандартный набор ключей можно записать в переменную среды
DIRCMD. Для отмены их действия введите в команде те же ключи с префиксом
«-«, например: /-W. 

12.    
Назначение
утилиты
TASKLIST. Состав выводимой информации.
Используемые ключи и параметры.

Команда TASKLIST используется для
получения списка процессов, выполняющихся на локальном или удаленном компьютере
в данный момент времени. 

Формат командной строки:

TASKLIST [/S <система> [/U <имя
пользователя> [/P [<пароль>]]]]

         [/M [<модуль>] | /SVC | /V]
[/FI <фильтр>] [/FO <формат>] [/NH]

Список параметров:

/S <система>

Подключаемый удаленный компьютер.

/U [<домен>\]<пользователь>

 Пользовательский контекст, в котором должна
выполняться эта команда.

/P [<пароль>]

Пароль для этого пользовательского
контекста.

/M [<модуль>]

Отображение всех задач, которые используют
данное имя exe/dll. Если имя модуля не указано, то отображаются все
загруженные модули.

/SVC

Отображение служб для каждого процесса.

/V

Ведение подробного протоколирования.

/FI  <фильтр>

Отображение списка задач, которые отвечают
указанному в фильтре критерию.  

/FO  <формат>

Описание формата выходного файла. Допустимые
значения: «TABLE», «LIST», «CSV».

/NH

Отключение отображения заголовка
«Column Header» в выходных данных. Допустимо для форматов
«TABLE» и «CSV».

/?

Вывод справки по использованию.

Фильтры:

Имя фильтра

Допустимые операторы

Допустимые значения

STATUS

eq, ne

RUNNING, NOT RESPONDING, UNKNOWN

IMAGENAME

eq, ne

Имя образа

PID

eq, ne, gt, lt, ge, le

Значение
PID

SESSION

eq, ne, gt, lt, ge, le

Номер сессии

SESSIONNAME

eq, ne

Имя сессии

CPUTIME

eq, ne, gt, lt, ge, le

Время CPU в формате hh:mm:ss.

MEMUSAGE

eq, ne, gt, lt, ge, le

Использование памяти в KБ

USERNAME

eq, ne

Имя пользователя в формате
[<домен>\<пользователь>]

SERVICES

eq, ne

Имя службы

WINDOWTITLE

eq, ne

Название окна

MODULES

;eq,
ne;
Имя DLL

13.    
Архиватор 7za. Создание архивов с помощью архиватора 7za в режиме командной строки.

Распаковать и заархивировать

Общий синтаксис:

7z <команда>
<ключи> <пути к каталогам и файлам>

Распаковка

Синтаксис для распаковки:

7z <x или e> <архивный
файл> -o»<путь, куда распаковываем>»

* ключ x распаковывает
с сохранением каталожной структуры; 
e — все в
одно место.

Архивация

Синтаксис для архивирования:

7z
a <ключи> <архивный файл> <объект архивирования>

В синтаксисе работы с 7zip
идут команды и ключи.

Описание основных команд

Команда

Описание

a

Добавление файлов в архив. Если
архивного файла не существует, создает его.

d

Удаление файла из архива

e

Извлечение файлов из архива. Все
файлы оказываются в одной папке.

l

Вывод содержимого архива.

rn

Переименовывание файла внутри
архива.

u

Обновление файлов в архиве. Если
файла нет, создает новый.

x

Извлечение файлов из архива.
Пути сохраняются.

Описание ключей

Часто используемые:

Ключ

Описание

-t

Тип архива. По умолчанию
создаются файлы в формате 7z. Примеры, -tzip, -tgz

-ssw

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

-mx

Уровень компрессии. 0 — без
компрессии (быстро), 9 — самая большая компрессия (медленно).

-p

Пароль для архива.

-o

Задает директорию, например, в
которую будут распакованы файлы.

-r

Рекурсивное архивирование для
папок. Задается числом от 0 (все каталоги) до количества уровней каталогов,
которые нужно включить в архив.

Другие полезные ключи:

Ключ

Описание

-sdel

Удалить файлы после создания
архива.

-sfx

Создание самораспаковывающегося sfx-архива.

-y

Утвердительно ответить на все
вопросы, которые может запросить система.

-x

Исключить файлы или папки из
архива.

  • Счетчик производительности windows server 2012
  • Структура в windows forms c
  • Счетчик fps для игр windows 11
  • Структура gpt диска windows 10
  • Странный шрифт в windows 10