Запуск команды в командной строке. Командная строка

05.10.2018

Это помогает безопасно производить различные действия с документами, проверять состояние передачи/приёма данных и несёт многие другие функции. Прежде всего следует изучить действия с файлами, каталогами. Как открыть папки через командную строку, вообще создание их, работа с ними, в том числе перемещение, переименование, как удалить папку через командную строку, уже ненужную,- эти вопросы вы сможете разрешить, прочитав статью. Проблема выглядит страшнее, чем есть на самом деле. Здесь главное - знать команды, правильно вписывать адрес документа. Ниже рассмотрим основные операции, сами сможете убедиться, что ничего сверхсложного тут нет.

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

При первом запуске по умолчанию вы находитесь в вашем персональном каталоге. Обычно, это «C:\Users\<имя пользователя>\».

Открываем имеющуюся папку

Чтобы открыть папку, в командной строке необходимо указать путь к ней. Вначале вписываете команду «cd», а затем после пробела адрес, например, “C:\ProgramFiles\Skype”.


ВАЖНО. Учтите: если в названиях, входящих в адрес, есть пробелы, весь путь надо заключить в кавычки. Если названия не содержат пробелов, можно кавычки не пропечатывать при этой команде.

Слэш можно применять как прямой, так обратный (\ и /). Оба они читаются программой одинаково, выбирайте удобный, привычный для вас.

Если вы не уверены в точном названии, нажмите TAB, затем стрелки вверх/вниз для прокрутки списка. Предположим, что у вас есть папки «helloYou» и «helloMe», расположены они в «C:\». Введите команду «C:\>cd h», потом дважды нажмите TAB, так вы прокрутите список компонентов, начинающихся на букву «h».

Просмотр содержимого

Чтобы увидеть содержимое какой-либо папки, набирается команда «dir», после которой вписывается путь к ней, затем параметры.

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


Если не введёте параметры, список будет представлен с пятью столбцами:

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

Чтобы избежать детализации, введите команду с параметром «/d» - увидите просто список без дополнительной информации.

Создание

Чтобы появилась новая папка, набирается «mkdir», можно сокращённо просто «md». Далее записывается путь к ней, название. Например, в корне диска C вам нужно в имеющемся «Test» создать подпапку «Russian», значит, набираете последовательно «mkdir “C:\Test\Russian ”».


Можно сразу создать несколько новых папок, укажите пути тогда через пробел либо названия. Допустим, в той же «Test» требуются подпапки 1, 2, 3. Если вы уже находитесь в корне C-диска, наберите «mkdir “Test \1” “Test \2” “Test \3”». Если вы находитесь уже в «Test», можно применять сокращённый вариант команды: «mkdir 1 2 3». Но не забудьте: при наличии пробелов в названиях, их нужно будет заключить в кавычки.

Удаление

Удалить папки, их содержимое позволяет команда «rmdir» либо её сокращённая версия «rm». После прописываются параметры, затем путь.

Если требуется удалить пустой каталог «Example folder», пишется по образцу «rmdir “C:\ Example folder”».


Если «Example folder» не пустой, в нём имеются подпапки/файлы, чтобы всё вместе удалить, следует после команды прописать ключ «/s». Ключ вписывается после «rmdir», но до адреса назначения. То есть запись будет выглядеть так: «rmdir /s “C:\Example folder”». Набрав команду, увидите запрос на подтверждение действий, выбираете «y», что значит, что вы согласны удалить («yes»).

Чтобы запрос на подтверждение постоянно не появлялся, можно сразу прописать ключ «/q». Он вписывается после «/s».

Можно перечислить через пробел удаляемое. Допустим, внутри «Test» вам стали не нужны папки 2 и 3, значит, записываете команду: «rmdir /s /q “C:\Test\1” “C:\Test\2” “C:\Test\3”». Если вы уже находитесь в каталоге «Test», можно вписать сокращённый вариант: «rmdir /s /q 1 2 3».


Перемещение, переименование

Для этих двух действий существует одна команда - «move». После неё записываются параметры, затем путь к перемещаемой/переименованной папке, затем путь к новообразуемой. Получается, что для перемещения указываете вначале старый путь, затем после пробела место, куда должен каталог переместиться. При переименовании вы указываете путь со старым названием, затем после пробела новое имя.

Рассмотрим на примерах.



Переходы

Работая через командную строку, вы захотели перейти в другой каталог. Вам поможет команда «chdir», позволяющая перейти в другое место. Либо просто заходите в раздел, как описывалось в этой статье выше, с помощью команды «cd».

Для перехода в подкаталог, необязательно указывать полный адрес, ежели находитесь в родительском. Допустим, вы находитесь в «ProgramFile», как в командной строке перейти в папку «Skype»? Не нужно указывать полный путь: «cd “C:\ProgramFiles\Skype”»; достаточно указать название подкаталога: «cd “Skype”».

Чтобы перейти назад, в родительский каталог, вписываем «cd “ProgramFiles”».

Если требуется поменять диск нахождения, добавляется ключ «/D», например, из диска C: понадобилось перейти в D:, прописываете «cd /D d:/».

Копирование

Саму папку формально копировать нельзя, но разрешается скопировать содержимое её, для чего служит команда «xcopy». После неё вписываются параметры, затем адрес копируемого каталога, затем после пробела адрес нового каталога.

Допустим, имеется папка «Foto», понадобилось её скопировать вместе с содержимым из «MyFile» в «NB». Записываем команду так: «xcopy /e “C:\MyFile\Foto” “C:\NB\Foto”». Ключ «/e» даёт команду скопировать внутреннее содержимое «Foto».

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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФГБОУ ВПО «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ»

Кафедра информационных систем, технологий и автоматизации в строительстве

«Основы командной строки Windows »

Лабораторный практикум

по курсу «Операционные системы»

М о с к в а 2 0 1 2

Составитель:

доцент кафедры ИСТАС Иванов Н.А.

Методические указания содержат основные сведения о назначении командной строки Windows и о средствах настройки и управления работой командной оболочки, о приемах эффективной работы с командной строкой. В методических указаниях изложены основы сценариев командной строки.

Методические указания предназначены для студентов факультета ИСТАС по направлению подготовки 230100 «Информатика и вычислительная техника» , изучающих дисциплину «Операционные системы».

1. Средства работы с командной строкой в Windows

Консоль командной строки присутствует во всех версиях операционных систем Windows. Ранние версии ОС поддерживали режим MS-DOS напрямую, что позволяло выполнять простые команды прямо из консоли. Представители же семейства NT, такие как Windows XP, Windows 7 или Windows Server 2008, работают уже совсем по другим принципам, однако MS-DOS в них тоже поддерживается, но через виртуальную машину (NT Virtual DOS Machine, NTVDM), что позволяет контролировать и администрировать системные ресурсы прямо из консоли командного режима.

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

При стандартной установке командный интерпретатор хранится на диске под именем cmd.exe в папке \Windows\System32 . Размер файла в Windows 7 равен 295 Кб, в Windows XP SP3 – 387 Кб.

Значимость командной строки состоит в том, что некоторые возможности ОС Windows доступны только при использовании командной строки. Кроме того, ключи командной строки перекрывают параметры Реестра Windows.

2. Запуск командной оболочки

Существует 2 способа запуска интерпретатора командной строки. Первый, самый быстрый и простой, подразумевает выполнение следующих шагов (рис. 1а и 1б):

– нажать клавишу с логотипом Windows + R; – откроется окно Выполнить (Windows 7) или Запуск программы (Windows XP); – введите cmd, нажмите OK;

Рис. 1а. Запуск командного интерпретатора в Windows 7.

Рис. 1б. Запуск командного интерпретатора в Windows XP.

При необходимости при запуске интерпретатора командной строки можно указать ключи, управляющие работой командной строки. С помощью ключей можно, например, запустить командную строку с отключением эхо-вывода («тихий» режим), определить, как будет вести себя окно командной строки после выполнения команды, указать, какая кодировка ANSI или Unicode будет использована при выводе результатов выполнения команды в файл. В таблице 2.1 перечислены основные ключи, доступные при запуске командной строки.

Таблица 2.1. Ключи управления запуском интерпретатора командной строки

Описание

Пример использования

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

cmd /c "dir c:"

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

cmd /k "dir c:"

Устанавливает для вывода в файл ANSI-кодировку

Устанавливает для вывода в файл Unicode-кодировку

Отключает эхо-вывод

Задает цвета текста и фона окна командной строки

Второй способ запуска командного интерпретатора заключается в последовательном выборе пиктограмм и пунктов меню:

Windows XP: Пуск –> Программы –> Стандартные –> Командная строка. Windows 7: Пуск –> Все программы –> Стандартные –> Командная строка. Независимо от способа запуска будет открыто окно интерпретатора командной строки, вид которого для разных версий Windows представлен на рисунках 2а и 2б.


Рис. 2а. Вид окна интерпретатора командной строки в Windows 7.


Рис. 2б. Вид окна интерпретатора командной строки в Windows XP

Для выполнения некоторых команд могут потребоваться права администратора. В Windows 7 если текущий пользователь является администратором компьютера, то при запуске командного интерпретатора через комбинацию клавиш WIN + R на экран будет выведено окно «Выполнить» , отличающееся от стандартного окна наличием фразы о запуске от имени администратора (рис. 3).


Рис. 3. Запуск командного интерпретатора пользователем-администратором в Windows 7.

Для запуска командного интерпретатора обычным пользователем с правами администратора необходимо сделать следующее:

Пуск - Все программы - Стандартные - Командная строка, нажать правую кнопку мыши и выбратьЗапуск от имени администратора (рис. 4).


Рис. 4. Запуск командного интерпретатора обычным пользователем с правами администратора в Windows 7.

В Windows XP обычный пользователь так же может запустить командный интерпретатор от имени пользователя, наделенного правами администратора. Для этого необходимо последовательно выбрать Пуск - Все программы - Стандартные - Командная строка, нажать правую кнопку мыши, выбрать « Запуск от имени…» (рис. 5) и указать пользователя, от имени которого будет выполнен запуск командной строки (рис. 6).

Рис. 5. Запуск командного интерпретатора обычным пользователем от имени другого пользователя в Windows XP.

Рис. 6. Окно выбора пользователя, от имени которого будет запускаться командный интерпретатор в Windows XP.

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

3. Настройка свойств командной оболочки

3.1. Работа с мышью в окне командной строки

Чтобы в окне командной строки можно было работать мышью в каждой из версий Windows нужно выполнить определенную последовательность действий.

В Windows 7 (рис. 7) нужно:

Командная строка» «Свойства »; – в открывшемся окне «Свойства: Командная строка » на вкладке «Общие » в разделе «Правка » установить флажок «Выделение мышью » и нажать кнопку OK .

В Windows XP (рис. 8) нужно:

– щелкнуть правой кнопкой мыши по строке заголовка окна «Командная строка» ; – из открывшегося контекстного меню выбрать «Свойства »; – в открывшемся окне «Свойства: Командная строка » на вкладке «Общие » в разделе «Редактирование » установить флажок «Выделение мышью » и нажать кнопку OK .

Рис. 7. Настройка возможности использования мыши в командной строке в Windows 7.

Рис. 8. Настройка возможности использования мыши в командной строке в Windows XP.

В появившемся окне «Изменение свойств ярлыка» (рис. 9) нужно выбрать один из предложенных вариантов. В первом случае все проделанные изменения будут сохранены только для текущего сеанса работы с командной строкой. Во втором случае все изменения сохранятся для последующих сеансов работы.

Рис. 9. Окно выбора варианта сохранения изменений свойств командной строки.

После этого можно выделять мышью текстовое содержимое окна командной строки, нажатием Enter копировать в буфер обмена, а затем вставлять, например, в файл *.txt, или *.doc. Но самое главное, после этого можно вставлять – предварительно скопированные из текстового файла в буфер обмена – длинные текстовые строки команд, щелкнув правой кнопкой мыши по строке заголовка командной строки и выбрав из контекстного меню Изменить –> Вставить.

3.2. Изменение цветов окна командной строки

По умолчанию фоновый цвет окна интерпретатора команд и в Windows XP, и в Windows 7 мрачного черного цвета (рис. 11), но у пользователя есть возможность изменить цветовую гамму окна командной строки (рис. 12).

Чтобы изменит цветовую гамму окна «Командная строка» нужно: – запустить интерпретатор команд; – щелкнуть правой кнопкой мыши по строке заголовка окна; – из открывшегося контекстного меню выберать пункт «Свойства »; – в открывшемся окне «Свойства Командная строка » на вкладке «Цвета» последовательно, устанавливая переключатели «Фон экрана» и «Текст на экране» , внизу в строке палитры выделить нужный цвет и нажать кнопку OK. – в появившемся окне Изменение свойств установите переключатель –> Сохранить свойства для других окон с тем же именем –> OK.

В Windows XP нужно выбрать вариант сохранения изменений цветовой гаммы путем установки переключателя в окне «Изменение свойств ярлыка» (рис. 9).

Рис. 10. Настройка цветовой гаммы окна командной строки.


Рис.11. Цветовая гамма окна «Командная строка» по умолчанию.


Рис.12. Цветовая гамма окна «Командная строка» после настройки цветов.

4. Перенаправление стандартных ввода, вывода и ошибок

4.1. Синтаксис перенаправления ввода, вывода и ошибок

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

Таблица 4.1. Синтаксис перенаправления ввода и/или вывода

Синтаксис перенаправления

Описание

Команда1 | Команда2

Вывод первой команды служит вводом для второй

Команда < [путь]имя_файла

Ввод команды поступает из заданного файла

Команда > [путь]имя_файла

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

Команда >> [путь]имя_файла

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

Команда < [путь]имя_файла1 > [путь]имя_файла2

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

Команда < [путь]имя_файла1 >> [путь]имя_файла2

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

Команда 2> [путь]имя_файла

Создается заданный файл, в который направляется вывод сообщений об ошибках. Если такой файл уже существует, то он перезаписывается

Команда 2>&1 [путь]имя_файла

Сообщения об ошибках и стандартный вывод записываются в один и тот же файл

4.2. Примеры перенаправления ввода, вывода и ошибок

4.2.1. Перенаправление стандартного вывода

Перенаправление вывода команды в качестве ввода другой команды принято называть конвейеризацией. Вывод можно последовательно перенаправлять неоднократно. Чаще всего конвейеризация используется для двух команд – FIND и MORE.

Команда FINDищет строки в файлах или в тексте ввода и выводит строки, соответствующие условию, которое задается в виде подстроки, заключенной кавычками. Например, чтобы получить список всех файлов с расширением.bmpкаталогеc:\windowsможно воспользоваться следующим вариантом перенаправления и обработки ввода:

dir c:\windows | find ".bmp"

Команда MOREпринимает вывод других команд и разбивает его на части, каждая из которых умещается в окне консоли. Например, если нужно просмотреть список всех файлов с расширением.dllкаталогаc:\windows\system32, можно воспользоваться командамиFINDиMOREследующим образом:

dir c:\windows\system32 | find ".dll" | more

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

4.2.2. Перенаправление ввода-вывода в файлы

Одним из эффективных и часто используемых методов перенаправления является получение входных данных для команды из файла и помещение вывода команды в файл.

Например, вывод списка файлов каталога c:\test\dataв файлc:\test\list.txtможно оформить следующей командой:

dir c:\test\data > c:\test\list.txt

Поиск файлов с расширением.batв списке файлов, хранящемся в файлеc:\test\list.txtможно организовать так:

find< c:\test\list.txt “.bat”

Здесь в качестве стандартного ввода для команды find определен файлc:\test\list.txt, а критерием поиска служит помещенная в кавычки строка.bat.

5. Создание цепочек и группирование команд

Как правило, при работе с командной строкой пользователь вводит текст команды и нажатием клавиши ENTERзапускает ее на выполнение. Однако командная строка позволяет выполнять не только одиночные команды, но и список команд, используя специальные управляющие символы «&» и «|». Пользователю предоставляется возможность создавать цепочку команд и выполнять их последовательно, а также определять условия выполнения команд в зависимости от успеха или неудачи выполнения предыдущих команд. Можно группировать наборы команд, выполняемых по условию.

В таблице 5.1 представлены основные схемы для создания цепочек и группирования команд.

Таблица 5.1. Основные схемы для создания цепочек и группирования команд

Синтаксис

Описание

Команда1 & Команда2

Последовательно выполняются команды Команда1 и Команда2

Команда1 && Команда2

Команда2 выполняется, если Команда1 выполнена успешно

Команда1 || Команда2

Команда2 выполняется, если Команда1 не выполнена успешно

(Команда1 & Команда2)&&(Команда3)

Команды Команда1 и Команда2 объединятся в группу, а Команда3 выполняется в случае успешного завершения этих команд

(Команда1 & Команда2) || (Команда3)

Команды Команда1 и Команда2 объединятся в группу, а Команда3 выполняется в случае неудачного завершения этих команд

5.1. Примеры использования цепочек команд

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

Пусть требуется перейти в определенный каталог и получить список файлов, отсортированный по дате. Использование цепочки позволяет решить эту задачу, введя всего одну строку:

cd c:\test\dir_cont & dir /o:d

Иногда требуется выполнить какую-либо операцию, если предыдущая операция потерпела неудачу.

Пусть есть группа рабочих станций, на части которых существует каталог c:\test\data, а на других – каталогc:\data. Необходимо обеспечить возможность копирования всех данных из каталогаdocsвнешнего накопителяD: в каталог data, независимо от конфигурации рабочей станции. Используя механизм цепочек команд, решить поставленную задачу можно следующим образом:

cd c:\test\data || cd c:\data & copy d:\docs\*.*

Выполняя указанную цепочку команд, система попытается сначала перейти в каталог c:\test\data. Если такого каталога нет, то система попытается перейти в каталогc:\data. Затем, независимо от того, какой каталог станет текущим, система скопирует в него все файлы из каталогаd:\docs.

Часто возникает ситуация, когда запуск последующей команды зависит от того, как завершилась предыдущая команда – успешно или неудачно.

Пусть требуется переместить файл test.batиз каталогаc:\testв каталогd:\arhiv, только если указанный файл существует. Задача может быть решена вводом следующей строки:

dirc:\test\test.bat&&movec:\test\test.batd:\arhiv

5.2. Группирование последовательностей команд

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

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

hostname&ver>info.txt

Однако, при выполнении команд в файл info.txtпопадет только информация об операционной системе, а имя компьютера будет выдано на экран. Это вполне объяснимо. Команды выполняются последовательно, для первой команды стандартный вывод не переопределен и направляется на экран. Для второй команды стандартный вывод перенаправлен в файл. Чтобы в файл попадал вывод обеих команд, их нужно сгруппировать:

(hostname&ver) >info.txt

Теперь в файл indo.txtпопала вся необходимая информация.

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

6.1. Создание сценариев командной строки

Рассмотренные выше возможности работы с командной строкой широко используются при создании сценариев командной строки.

Сценарии командной строки – текстовые файлы с командами, которые необходимо выполнять последовательно, часто в автоматическом режиме. Сценарии можно создавать и редактировать подобно любому текстовому файлу, используя текстовые редакторы, например, Блокнот. Каждая команда или группа команд, которые нужно выполняться совместно, должны размещаться в отдельной строке. Командная строка не требует специального символа завершения помимо символа конца строки. Файл, в котором сохраняется сценарий командной строки, должен иметь расширение . bat или. cmd .

При создании сценариев командной строки очень часто используются шесть простейших команд: cls ,rem ,echo ,@ ,title ,color .

Рассмотрим подробнее назначение этих команд.

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

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

«…в каждом создаваемом сценарии должны быть комментарии, поясняющие:

- когда сценарий был создан и в последний раз изменен;

- кто создал сценарий;

- для чего предназначен сценарий;

- куда направляется вывод сценария. »

Команда rem может быть использована для предотвращения выполнения команды или группы команд. В этом случае достаточно поместить командуrem в начало строки.

Команда echo служит двум целям: для записи текста в вывод и для включения/выключения эхо-отображения команд. Обычно при выполнении команд сценария сами команды и вывод этих команд отображаются в консольном окне. Это называетсяэхо-отображением команд . Чтобы отключить эхо-отображение нужно ввести командуecho off . Чтобы узнать, включено ли эхо-отображение команд или нет, достаточно просто ввести командуecho .

Для возобновления эхо-отображения используется команда echo on . Чтобы использовать командуecho для отображения текста нужно указать текст после пробела после команды.

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

При этом между командой и точкой пробела быть не должно !

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

Команда title позволяет отобразить в заголовке окна консоли команд любого текста. Этой возможностью можно пользоваться для отображения хода выполнения сценария.

Команда color позволяет изменять цвета фона и текста окна консоли непосредственно при выполнении сценария. По умолчанию консольное окно отображает белый текст на черном фоне. Изменить цвета можно, указав в качестве параметра командыcolor двухразрядный шестнадцатеричный код, первая цифра которого определяет цвет фона, а вторая – цвет текста. В таблице 6.1 представлены значения кодов цветов окна командной оболочки.

Таблица 6.1. Коды цветов для окна командной оболочки

Ярко-синий

Салатовый

Бирюзовый

Ярко-красный

Фиолетовый

Ярко-фиолетовый

Ярко-желтый

Ярко-белый

6.2. Использование аргументов и параметров в сценариях

При запуске сценария на выполнение можно передать сценарию необходимую информацию путем задания значения аргументов. Каждое значение, передаваемое сценарию, задает значение одного из формальных параметров. Имя самого сценария сохраняется в параметре %0. Значение первого аргумента сохраняется в параметре %1, второго аргумента – параметру %2 и так далее до %9 для девятого аргумента. Если при вызове сценария указывается более девяти аргументов, то дополнительные аргументы не теряются. Они сохраняются в специальном параметре %*. Получить доступ к дополнительным аргументам можно с помощью команды shift . Если командаshift используется без аргумента, то значения параметров сценария сдвигаются на 1, то есть значение параметра %1 заменяется значением параметра %2 и т.д.

При необходимости можно указать, с какого параметра начинается сдвиг, указав номер первого из заменяемых параметров в качестве аргумента команды shift . Например, если указатьshift /2 , то значение параметра %2 будет заменено значением параметра %3 и т.д. Значения параметров %0 и %1 при этом останутся без изменения.

6.3. Использование переменных в сценариях в сценариях

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

Встроенные системные переменные являются ресурсами операционной системы или формируются драйверами аппаратуры. Такие переменные доступны всем Windows-процессам даже если никто не вошел в систему в интерактивном режиме. Значения встроенных системных переменных выбираются из реестраWindows.

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

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

Команда имеет следующий формат:

set [переменная=[строка]] , где

переменная - имя переменной среды;

строка - строка символов, присваиваемая указанной переменной.

Имена переменных не чувствительны к регистру и могут содержать латинские буквы, цифры и практически все символы клавиатуры, кроме символов, зарезервированных в командной строке: @ < > & | ^.

На практике принято присваивать переменным информативные имена, например:

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

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

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

Получить доступ к некоторым скрытым возможностям Windows и автоматизировать многие процессы можно при помощи командной строки.

Windows сегодня - полноценная операционная система, к которой написаны тысячи программ для решения любых задач. Однако, пользователи со стажем не раз сталкивались с ситуациями, когда некоторые программы во время запуска или работы вдруг открывали чёрное окошко с кучей строк текста...

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

Немного истории и теории

А началось всё с того, что в далёком уже 1981 году компания Microsoft создала свою версию операционной системы DOS для IBM-совместимых ПК:

DOS - это аббревиатура от "Disk Operation System", то есть, по-нашему "Дисковая операционная система". Она позволяла оперировать файлами и каталогами на жёстких дисках и съёмных носителях, вроде дискет, а также являлась прослойкой для запуска различных сторонних прикладных программ.

По этому же принципу работает и Командная строка Windows, которая с появлением нормального графического интерфейса, по сути, осталась для обеспечения обратной совместимости с некоторым ПО под DOS и работы пакетных файлов команд (о них немного ниже).


В отличие от консоли Linux, функционал Командной строки значительно более скуден. С целью его увеличения в своё время создавались различные дополнительные терминалы, вроде интерпретатора команд COMMAND.COM или современной PowerShell. Однако, именно CMD.EXE до сих пор остаётся самым популярным инструментом, поскольку "умеет" не так уж и мало:

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

Естественно, полноценно программировать с использованием Командной строки не получится. Однако, создавать несложные сценарии автоматизации рутинных задач с последующим их выполнением, например, посредством штатного Планировщика, думаю, при желании сможет каждый!

Вызов командной строки

Для того, чтобы получить доступ к Командной строке, её нужно вначале запустить. Сделать это в Windows можно несколькими способами.

Способ 1. Вручную

Поскольку Командная строка является обычным исполняемым файлом, который находится в папке Windows\System32 на основном разделе диска с системой, то его можно запустить вручную, открыв вышеназванную папку и запустив файл cmd.exe:


Способ 2. Меню "Пуск"

В версиях Windows с меню "Пуск" (кроме "Восьмёрки") командную строку можно запустить, пройдя по пути "Пуск" - "Все программы" - "Стандартные":


Способ 3. Строка "Выполнить"

Самым же быстрым и удобным, на мой взгляд, является запуск Командной строки посредством системного диалога "Выполнить". Вызвать его можно из меню "Пуск" или сочетанием клавиш WIN+R. Вводим в строке команду CMD или CMD.EXE, жмём Enter и получаем нужный результат:


Принцип работы

Итак, перед нами открылась вожделенная Командная строка, но что с ней делать? Для начала рекомендую ознакомиться со списком доступных команд. Для его получения достаточно ввести слово "help" (без кавычек) и нажать Enter:


В зависимости от версии Windows мы получим примерно до сотни различных команд с кратким описанием. Разделить их можно на несколько групп:

  1. Команды для работы с файлами и папками , вроде копирования, анализа и удаления (ATTRIB, COPY, REM, DEL и др.).
  2. Команды для работы с текстовыми данными для чтения текстовых файлов, вывода на экран их содержимого, обработки строк и их последующего сохранения (TYPE, FIND, COMP...).
  3. Команды управления операционной системой , например, функция печати (PRINT), форматирования носителя (FORMAT), анализа диска (CHKDSK) и т.п.
  4. Команды для работы с приложениями : START для запуска или TASKKILL для закрытия активного процесса.
  5. Служебные команды для использования их в скриптах автоматизации (IF, GOTO, AT, CALL, FOR и т.д.).
  6. Справочные команды для получения информации о системе или других командах (HELP, VER, ECHO...).
  7. Вспомогательные команды : CLS для очистки экрана консоли, COLOR для настройки цвета текста и фона Командной строки, TITLE для установки заголовка окна текущей сессии терминала и т.п.

Каждая команда может иметь один или несколько дополнительных параметров, а также использовать для своей работы так называемые ключи, которые являются модификаторами поведения команды. Чтобы получить справку по ним достаточно ввести название нужной Вам команды, через пробел без кавычек написать "/?" (или слово "help") и нажать Enter:


Справка по встроенным командам обычно довольно полная и включает в себя:

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

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

BAT-файлы

Если Вы разобрались с основными принципами работы Командной строки, то уже вполне можете выполнять в ней нужные Вам единичные задачи. Однако, основная прелесть любой консоли в возможности автоматизации повторяющихся задач путём последовательного выполнения пакета команд.

Чтобы выполнять за один раз несколько команд нам и нужны BAT-файлы. По сути, пакетные (или batch) файлы являются простыми текстовыми файлами с наборами консольных команд. Единственное отличие от обычных TXT-файлов - расширение, которое вручную меняется на.bat:


Ещё один нюанс! Если в именах файлов или папок, с которыми Вы собираетесь работать, имеются русские буквы, то стандартно сохранённый Блокнотом "батник" работать не будет! Чтобы использовать кириллицу Вам нужно сохранять пакетный файл в кодировке DOS (она же OEM 866), в которой по умолчанию работает Командная строка.

Для этого лучше воспользоваться альтернативными текстовыми редакторами, вроде или . На худой конец можно использовать и встроенный в Windows WordPad. Скопируйте в него текст своего BAT-файла из Блокнота и сохраните, как обычный Текстовый документ MS-DOS с расширением.bat:


Операторы Командной строки, переменные и вспомогательные символы

Вот Вам простой пример фрагмента BAT-файла, который лежит у меня в Планировщике и складывает загруженные из Интернета картинки в отдельную папку:

:: Переносим изображения в папку "Картинки"

move C:\Users\Че\Downloads\*.jpg C:\Users\Че\Downloads\Картинки

move C:\Users\Че\Downloads\*.png C:\Users\Че\Downloads\Картинки

move C:\Users\Че\Downloads\*.gif C:\Users\Че\Downloads\Картинки

move C:\Users\Че\Downloads\*.psd C:\Users\Че\Downloads\Картинки

Основной функционал реализуется за счёт команды MOVE, в которой мы указывает имя исходного файла и путь к папке, в которую его нужно перенести. Однако, обратите внимание, что имя нам заранее неизвестно, поэтому вместо него мы используем специальный подстановочный символ - "*".

Кроме этого символа в приведённом выше коде мы можем видеть значок "собачки", а также двойное двоеточие. Первая конструкция позволяет отключить вывод сообщений на экран, а вторая, как нетрудно догадаться, реализует функционал комментирования.

Дело в том, что помимо команд, их параметров и ключей Командная строка оперирует ещё рядом специфических функций, которые характерны для полноценных языков программирования. К таким функциям можно отнести операторы, переменные и различные спецсимволы (вроде той же звёздочки и комментариев).

Рассмотрим следующий пример:

:: Создаём переменную с именем "var1"

:: Включаем арифметику (ключ /а) и вычисляем значение второй переменной

set /a var2=var1+var1

:: Перенаправляем вывод (знак ">") второй переменной в файл var.txt

echo %var2% > D:\var.txt

:: Считываем содержимое файла (знак "<") в новую строковую (ключ /p) переменную

set /p var3=

:: И выводим на экран

:: Результатом выполнения сценария будет вывод в Командной строке числа 10

Из комментариев, думаю, всё понятно: здесь мы рассматриваем создание переменных и работу с ними, а также внешними текстовыми файлами. Внимание стоит обратить на следующие моменты:

  1. Команда SET по умолчанию создаёт, по сути, строковую переменную, но имеет два ключа: /a и /p. Первый ключ указывает, что в переменной находится число и активирует арифметические действия, второй же нужен для получения строковых данных из внешних файлов.
  2. Командная строка поддерживает следующие арифметические действия:
  • "+" - сложение;
  • "-" - вычитание;
  • "*" - умножение;
  • "/" - деление;
  • "%" - деление по модулю;
  • "+=" - сложение с присваиванием переменной нового результата (например, va1+=1 равнозначно записи var1=var1+1) (аналогично присваивание можно применить к любой вышеназванной операции).
  1. Для перенаправления данных используются операторы: > (вывод с перезаписью), < (ввод с заменой данных), >> (дописывание в файл), << (ввод с дописыванием данных к переменной).
  2. Для вывода переменных через команды ECHO, TYPE и т.п. они должны быть ограничены символами процента (%). Если символы не поставить, то будет выведено только название переменной, а не её значение.
  3. Если требуется остановить выполнение сценария для отображения результатов можно использовать команду PAUSE. Если этого не сделать, то по окончании выполнения сценария окно Командной строки просто закроется.

В сценариях Командной строки также очень часто можно встретить операторы, которые позволяют группировать команды, передавать потоки данных между ними, а также совершать простейшие условные переходы. Рассмотрим ещё один пример:

:: Отключаем вывод строк команд

:: Позволяем пользователю самостоятельно задать переменную "ext" с расширением файла

set /p ext=Введите расширение для поиска:

:: Получаем список файлов в корне диска D и ищем нужное расширение. В зависимости от результата выводим сообщение

dir D:\ | find "%ext%" && echo Файлы найдены || (echo Файлы не обнаружены & echo Попробуйте ввести другие данные в следующий раз)

:: Останавливаем выполнение, чтобы увидеть результат

Этот сценарий позволяет найти и вывести список всех файлов, в именах которых встречается заданный пользователем (переменная ext) набор символов. При этом за счёт использования простых условных операторов мы будем получать разный текст с пояснениями. Рассмотрим эти операторы:

  1. "|" - оператор конвейеризации . Позволяет передать результат выполнения одной команды для обработки другой без промежуточного вывода (в примере передаём список всех файлов на анализ команде FIND).
  2. "&&" - оператор выполнения команды при успешном завершении предыдущей . Выполняет следующую после него команду только, если предыдущая была успешно завершена (в примере выводим сообщение "Файлы найдены", если есть хотя бы один файл, соответствующий условию поиска).
  3. "||" - оператор выполнения команды при невыполнении предыдущей . Запускает команду, если предыдущая не была выполнена (в примере выводим сообщение "Файлы не обнаружены", если нет ни одного файла, соответствующего параметрам поиска).
  4. "&" - оператор последовательности выполнения команды . Запускает команду следующей вне зависимости от того была ли успешно выполнена предыдущая (в примере позволяет вывести дополнительное сообщение "Попробуйте ввести другие данные в следующий раз" после появления "Файлы не обнаружены").
  5. "()" - оператор группирования команд . Позволяет группировать команды, которые должны выполняться при тех или иных условиях (в примере создаёт группу сообщений, которые выводятся, если поиск завершился неудачей).

В примере показан довольно примитивный вариант условий. На практике иногда лучше использовать связку команд IF и ELSE, как это делается в нормальных языках программирования. Но, тем не менее, такие сокращённые варианты записи тоже частенько встречаются.

Консольные программы

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

Большинство штатных консольных программ лежит в той же папке, что и исполняемый файл CMD.EXE. Принцип работы с ними, по сути, аналогичен работе с обычными командами: достаточно ввести имя исполняемого файла вместо команды и дополнить его нужными параметрами с ключами:


О большинстве из консольных утилит можно найти информацию на специализированных сайтах, вроде, на http://cmdhelp.ru/ или же при помощи получения по ним справки прямо в Командной строке.

Для запуска же сторонних программ нужно указывать не только их название, но и полный путь к исполняемому файлу. Для примера возьмём утилиту уменьшения размера картинок в формате JPG под названием Jpegtran :


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

Выводы

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

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

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.