Skip to content

Практическая работа №3

Основные теоретические положения

Section titled “Основные теоретические положения”

1. Командная строка и структура команды

CMD (cmd.exe) — командный интерпретатор Windows, позволяющий выполнять операции без графического интерфейса.

Команда может содержать имя, ключи и аргументы:

Terminal window
DIR /B "%USERPROFILE%"

Здесь DIR — команда просмотра содержимого каталога, /B — ключ краткого вывода, а %USERPROFILE% — переменная среды, содержащая путь к профилю текущего пользователя.

Для справки можно использовать help и ключ /?:

Terminal window
help
help dir
copy /?

2. Сведения об операционной системе и процессах

КомандаНазначение
verВывод версии Windows
hostnameИмя компьютера
whoamiИмя текущей учётной записи
echo %USERNAME%Имя пользователя из переменной среды
echo %CD%Полный путь к текущему каталогу
tasklistСписок запущенных процессов
systeminfoДополнительные сведения об ОС и компьютере (выполнение может занимать время)

Пример:

Terminal window
hostname
whoami
tasklist

Обратите внимание: CMD, PowerShell и Проводник Windows — разные способы работы с системой. В данной работе команды выполняются именно в CMD.

3. Навигация и операции с файлами

КомандаНазначениеПример
cdПоказать текущий каталог или перейти в другойcd /d "%USERPROFILE%"
cd ..Перейти в родительский каталогcd ..
dirПросмотреть содержимое каталогаdir /b
mdСоздать каталогmd reports
treeПоказать дерево каталоговtree /f /a
echoВывести строку, в том числе в файлecho Hello > note.txt
typeВывести содержимое текстового файлаtype note.txt
copyСкопировать файлcopy note.txt backup\note.txt
moveПереместить файлmove note.txt work\
renПереименовать файлren note.txt result.txt
delУдалить файлdel test.txt

Абсолютный путь указывает расположение объекта от корня диска, например C:\Users\Student\Documents. Относительный путь отсчитывается от текущего каталога, например input\readme.txt.

Если в пути есть пробелы, используйте кавычки:

Terminal window
cd /d "%USERPROFILE%"

4. Стандартные потоки, перенаправление и конвейеры

При выполнении команды обычно используются стандартный ввод (stdin), стандартный вывод (stdout) и поток ошибок (stderr).

Terminal window
echo First > note.txt
echo Second >> note.txt
type note.txt
  • > — записать вывод в файл, заменив прежнее содержимое;
  • >> — добавить вывод в конец файла;
  • 2> — перенаправить сообщения об ошибках в файл;
  • | — передать вывод одной команды на вход следующей.

Например:

Terminal window
tasklist > processes.txt
type processes.txt | findstr /i "cmd.exe"

Здесь findstr /i ищет строки без учёта регистра.

5. Поиск информации и сравнение файлов

Terminal window
findstr /i "ERROR" app.log
findstr /i "ERROR" app.log > errors.txt
fc original.txt modified.txt

findstr ищет строки по указанному образцу, а fc сравнивает содержимое двух файлов. Для вывода только имён файлов пригодится dir /b, а для просмотра вложенных файлов — dir /b /s /a-d.


Задания для выполнения

Section titled “Задания для выполнения”

Часть 1. Исследование командной среды и файловой системы

Section titled “Часть 1. Исследование командной среды и файловой системы”

Задание 1.1. Получение сведений об операционной системе

Откройте CMD с помощью Win + R → cmd → Enter.

  1. Выполните команды ver, hostname и whoami.
  2. Выведите значение переменных %USERNAME% и %USERPROFILE%.
  3. Выполните tasklist и найдите в списке процесс cmd.exe (если его имя отображается в списке).
  4. Самостоятельно выясните, для чего используется ключ /FI команды tasklist, используя встроенную справку.

Запишите в тетрадь или черновой текстовый файл ответы: чем различаются имя компьютера и имя пользователя; что показывает tasklist; для чего служит %USERPROFILE%.


Задание 1.2. Создание рабочей структуры каталогов

Перейдите в свой профиль пользователя:

Terminal window
cd /d "%USERPROFILE%"

Создайте учебную папку CMD_Practice_Фамилия (фамилию укажите латиницей, например CMD_Practice_Petrov). Перейдите в неё и подготовьте структуру:

CMD_Practice_Petrov\
├── input\
├── work\
├── backup\
└── reports\

Выполните команды, показывающие текущий каталог и дерево созданных каталогов. При необходимости используйте cd, md, dir и tree.

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


Задание 1.3. Создание и просмотр текстовых файлов

В каталоге input создайте три файла только через CMD. Используйте echo, > и >>.

Содержимое input\readme.txt:

Project: StudyPortal
Owner: student
Status: draft

Содержимое input\settings.ini:

PORT=8080
MODE=development

Содержимое input\app.log:

INFO start
ERROR config missing
WARNING retry
ERROR access denied
INFO stop

Образец создания первой строки:

Terminal window
echo Project: StudyPortal > input\readme.txt

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


Задание 1.4. Поиск данных и сохранение результатов

  1. Выведите содержимое input\app.log на экран.
  2. Найдите в нём все строки, содержащие ERROR, с помощью findstr.
  3. Сохраните найденные строки в файл reports\errors.txt.
  4. Повторите поиск, используя конвейер: команда чтения файла | команда поиска.
  5. Сохраните список имён файлов каталога input в reports\input_files.txt.
  6. Сохраните сведения о версии ОС, имени компьютера и текущем пользователе в один файл reports\system.txt, используя > для первой команды и >> для последующих.

Образец перенаправления:

Terminal window
findstr /i "ERROR" input\app.log > reports\errors.txt

Проверка: файл errors.txt должен содержать ровно две строки, а файл system.txt — сведения, полученные из командной строки, а не набранные вручную.


Часть 2. Индивидуальное задание

Section titled “Часть 2. Индивидуальное задание”

Вариант 1. Подготовка файлов проекта к передаче

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

  1. Создайте в work каталог release.
  2. Скопируйте readme.txt и settings.ini из input в work\release.
  3. Переименуйте копию readme.txt в project_readme.txt.
  4. Добавьте только в копию строку Status: ready.
  5. Создайте в backup копию исходного readme.txt под именем readme_original.txt.
  6. Сохраните структуру work с файлами в reports\release_tree.txt.
  7. Сравните исходный readme.txt и подготовленный project_readme.txt с помощью fc. Устно объясните отличие.

Результат: готовая папка work\release, неизменённые исходники, резервная копия и отчёт о структуре.


Вариант 2. Анализ журнала приложения

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

  1. Скопируйте input\app.log в work\app_review.log.
  2. Добавьте в копию одну строку ERROR timeout.
  3. Сохраните все строки с ERROR из копии в reports\review_errors.txt.
  4. Сохраните все строки с INFO в reports\review_info.txt.
  5. Выведите на экран количество строк с ERROR, используя конвейер с find /c (при необходимости откройте справку find /?).
  6. Сохраните результат сравнения исходного журнала и копии в reports\log_diff.txt.

Результат: в review_errors.txt три строки, в review_info.txt две строки, а log_diff.txt отражает добавленную запись.


Вариант 3. Инвентаризация рабочего места

Перед передачей компьютера другому сотруднику необходимо составить краткий технический отчёт.

  1. Создайте reports\inventory.txt.
  2. Запишите в него с помощью вывода команд версию Windows, имя компьютера, текущего пользователя и полный путь к учебной папке.
  3. Сохраните полный список запущенных процессов в reports\processes.txt.
  4. С помощью findstr найдите в этом списке процесс cmd.exe. Результат поиска выведите на экран.
  5. Сохраните дерево учебной папки с файлами в reports\structure.txt.
  6. Сравните команды hostname и whoami. Объясните, для чего в отчёте нужны обе.

Результат: три отчёта: inventory.txt, processes.txt и structure.txt. Данные должны быть собраны командами CMD, а не перепечатаны вручную.


Вариант 4. Проверка изменений конфигурации

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

  1. Скопируйте input\settings.ini в backup\settings_original.ini.
  2. Скопируйте исходный файл в work\settings.ini.
  3. Добавьте в рабочую копию строку LOG_LEVEL=debug.
  4. Сравните резервную и рабочую версии с помощью fc.
  5. Сохраните результат сравнения в reports\settings_diff.txt.
  6. Найдите в рабочей копии строки, содержащие PORT и LOG_LEVEL, и сохраните результат в reports\settings_check.txt (для двух поисков допускается использовать > и >>).
  7. Убедитесь, что исходный input\settings.ini не изменился.

Результат: исходная, резервная и рабочая версии конфигурации и два отчёта.


Вариант 5. Сортировка полученных материалов

В папке проекта смешались документы, настройки и журналы. Нужно разложить их по назначению.

  1. Создайте в work каталоги docs, config и logs.
  2. Скопируйте input\readme.txt во временный корень work.
  3. Скопируйте input\settings.ini и input\app.log туда же.
  4. Переместите полученные копии в соответствующие каталоги: текстовый документ — в docs, настройки — в config, журнал — в logs.
  5. Переименуйте документ в project_info.txt.
  6. Сохраните дерево work в reports\sorted_tree.txt, а список полных путей к файлам в reports\sorted_files.txt.
  7. Проверьте, что файлы из input остались без изменений и в корне work не осталось скопированных файлов.

Результат: три тематических каталога и два отчёта.


Вариант 6. Резервное копирование и восстановление

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

  1. Скопируйте все три исходных файла из input в backup.
  2. Скопируйте readme.txt из резервной копии в work.
  3. Добавьте в work\readme.txt строку Status: changed.
  4. Сравните рабочую копию с резервной посредством fc; сохраните результат в reports\before_restore.txt.
  5. Восстановите work\readme.txt из резервной копии, заменив изменённый файл.
  6. Повторите сравнение и сохраните его вывод в reports\after_restore.txt.
  7. Объясните, почему результаты двух сравнений должны отличаться.

Результат: три файла в backup, восстановленный readme.txt в work и два отчёта о проверке.


Проверка и сдача работы

Section titled “Проверка и сдача работы”
  1. Выполните в корне учебной папки команду tree /f /a.
  2. Убедитесь, что reports\errors.txt и reports\system.txt созданы, а файлы вашего индивидуального варианта содержат ожидаемые данные.
  3. Покажите преподавателю папку с результатами и продемонстрируйте выполнение одной команды, использованной в индивидуальном задании.

Дополнительное задание для успевших: выясните с помощью справки CMD, как просмотреть только .txt-файлы внутри всех вложенных папок work, и сохраните список в reports\all_txt.txt.


  1. Чем CMD отличается от графического интерфейса Windows и PowerShell?
  2. Для чего используется переменная среды %USERPROFILE%?
  3. В чём различие между абсолютным и относительным путём?
  4. Чем cd /d отличается от обычного cd?
  5. Какую информацию показывает команда tasklist?
  6. В чём различие между copy, move и ren?
  7. Чем отличаются операторы > и >>?
  8. Что означает 2> и какой тип вывода он перенаправляет?
  9. Как работает оператор |? Приведите пример конвейера.
  10. Для чего используются команды findstr и fc?

Рекомендуемая литература

Section titled “Рекомендуемая литература”
  1. Microsoft Learn — справочник по командам Windows.
  2. Microsoft Learn — команда cmd.
  3. Microsoft Learn — команда dir.
  4. Microsoft Learn — команда findstr.
  5. Встроенная справка CMD: help, <команда> /?.