
2
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
Кафедра 41
ПРЕПОДАВАТЕЛЬ
Доцент, канд. техн. наук |
|
|
|
Е. Л. Турнецкая |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
Лабораторная работа №2
Разработка командных файлов средствами Командной строки Windows
по курсу: Операционные системы
СТУДЕНТКА ГР. № |
Z0411 |
|
16.05.23 |
|
М. В. Карелина |
|
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
Номер студенческого билета: 2020/3477
Санкт-Петербург
2023
Вариант 8.
Цель работы: получение практических навыков разработки командных файлов для Командной строки Windows.
Порядок выполнения
1. Выполните все упражнения, описанные в теоретической части. Результаты выполнения зафиксируйте на скриншотах.
2. Индивидуальное задание.
Упражнение 1. Установка атрибутов.
Создадим в Блокноте текстовый файл Karelina_Z0411.txt и сохраним на винчестере: C:\ Karelina _Z0411.txt. Посмотрим Свойства файла через Проводник (Рис. 1).
Рисунок 1. Просмотр Свойства файла через программу Проводник
Присвоим файлу три атрибута: Только для чтения, скрытый и архивный.
C:\>Attrib +A +H +R Karelina_Z0411.txt
Убедимся, что файл с атрибутом Скрытый не будет виден в Проводнике (Рис. 2).
Рисунок 2. Подробные свойства файла
4. Отменим атрибут Скрытый командой
C:\Users\ytina>Attrib -H Karelina_Z0411.txt
Файл стал снова виден в Проводнике.
Упражнение 2. Исследование характеристик каталогов.
Определить с помощью команд dir и find сколько байт занято и свободно в каталоге C:\Windows.
С:\Users\ytina>dir C:\Windows | find "байт"
Определить количество папок в том же каталоге
С:\Users\ytina>dir C:\Windows | find "папок"
Подсчитать в том же каталоге количество файлов с расширением .bmp
С:\Users\ytina>dir C:\Windows\*.bmp /S | find "файлов"
Вывести на экран названия всех файлов с расширением .py.
С:\Users\ytina>dir C:\Windows | find /C ".py"
Команды и их результат на Рисунке 3.
Рисунок 3. Исследование характеристик каталогов
Упражнение 3. Изучение особенностей работы команды echo
1. В Командной строке наберем и выполним команду echo off. В строке приглашения остается только мигающий курсор.
2. Наберем и выполним команду dir.
3. Также выполним еще две команды – date и systeminfo и зафиксируем результат на скриншотах.
4. Восстановим приглашение, набрав команду echo on.
Работа в командной строке на Рис. 4-6.
Рисунок 4. Изучение особенностей работы команды echo
Рисунок 5. Изучение особенностей работы команды echo
Рисунок 6. Изучение особенностей работы команды echo
Упражнение 4. Сценарии диалога с пользователем.
Создадим командный файл для вывода на экран фразы «My name is Maria»
Наберем в текстовом редакторе следующие команды
@echo off
rem Приветствие
echo My name id Maria
В командных файлах для лучшего понимания программного кода часто используют строки комментария, вводимые с помощью команды rem.
Я назвала файл Karelina_Z0411.bat.
Запустим файл на исполнение в Командной строке.
Вызов командного файла осуществляется из среды cmd.exe командой, которая имеет формат: Диск:\Путь \Имя_файла [команды] (Рис. 7).
Рисунок 7. Исполнение .bat файла
Объявим переменную с именем name и присвоим ей значения Cat. Для вывода значения переменной на экран ее имя заключают между символами %.
Наберем в текстовом редакторе следующие команды:
@echo off
rem Создание и использование переменных
set name= MEOW
echo %name%
Я назвала файл Karelina_Z04111.bat.
Запустим файл на исполнение в Командной строке (Рис. 8).
Рисунок 8. Использование переменных в .bat файлах
Создадим диалог с пользователем, в котором сначала запрашивают его имя и выводят его на экран. Для ввода данных используют конструкцию set /p.
@ECHO OFF
SET /P name= Enter your name
ECHO Your name is - %name%
3.1. Я назвала файл Karelina_Z041111.bat.
3.2. Запустим файл на исполнение в Командной строке (Рис. 9).
Рисунок 9. Диалог с пользователем
Направим сообщения, выводимые командой ECHO, в текстовый файл. Выполнение этой задачи реализуйте с помощью команд перенаправления ввода/вывода > и >>.
@ECHO OFF
ECHO Hello! > hello.txt
ECHO Farewell >> bye.txt
4.1. Я назвала файл Karelina_Z0411111.bat.
4.2. Запустим файл на исполнение в Командной строке (Рис. 10).
Рисунок 10. Работа с текстовыми файлами
Разработайте командный файл, который запрашивает у пользователя по очереди имя и возраст, а затем выводит их вместе на экран.
@ECHO OFF
SET /P name= Enter your name
SET /P age= Enter your age
ECHO Your name is - %name% Your age is - %age%
5.1. Я назвала файл Karelina_Z04111111.bat.
5.2. Запустим файл на исполнение в Командной строке (Рис. 11).
Рисунок 11. Использование переменных в .bat файлах
Упражнение 5. Копирование каталогов с параметрами.
Разработаем командный файл copy.bat следующего содержания:
@ECHO OFF
CLS
ECHO File %0 puts catalog %1 in %2
XCOPY %1 %2 /S
Запустим его из Командной строки с двумя параметрами.
copy.bat C:\kurs C:\Backup
Проверьте вывод на экране сообщения (Рис. 12).
Рисунок 12. Копирование каталога
Проверим средствами программы Проводник выполнение копирования каталога C:\kurs со всеми его подкаталогами в C:\Backup (Рис. 13).
Рисунок 13. Каталог скопирован
Упражнение 6. Работа с командными файлами.
Напишем командный файл forest.bat, создающий в каталоге All дерево каталогов, как показано на рисунке. Программная реализация этой задачи с использованием команд md и cd показана ниже. Каталог mydir создан заранее на диске C.
@ECHO OFF
md C:\mydir
md C:\mydir\ALL\A1
md C:\mydir\ALL\A2\B1\C1
md C:\mydir\ALL\A2\B1\C2
md C:\mydir\ALL\A2\B2
md C:\mydir\ALL\A3\B3
tree C:\mydir
Запустим его из Командной строки (Рис. 14).
В каталоге ALL создадим следующие текстовые файлы (Рис. 15):
– в файл first.txt внесем «Hello, World!»;
– в файл second.txt напишите «Hello, GUAP!»;
– в файл third.txt добавим « I am studying the command line!».
Рисунок 14. Результат выполнения файла Forest.bat
copy con first.txt
Hello, World! ^Z
copy con second.txt
Hello, GUAP! ^Z
copy con third.txt
I am studying the command line! ^Z
Рисунок 15. Создание трех текстовых файлов
Создадим пакетный командный файл main.bat для описания следующей последовательности команд.
Удалите каталог B3. Создадим в каталоге A1 подкаталоги B4 и B5. Удалим каталог B2.
Скопируем first.txt в каталог A2 и переименуем его в файл one.txt.
Скопируем все текстовые файлы из каталога ALL в каталог C2.
Объединим все текстовые файлы, хранящиеся в каталоге C2, в файл man.txt и выведем его содержимое на экран.
Скопируем файл man.txt в папку ALL.
Просмотрим дерево каталога ALL со всеми подкаталогами и файлами.
Перед запуском командного файла перейдем в корневой каталог диска D. Фрагмент выполнения командного файла показан на Рис. 16.
@ECHO OFF
cd C:\mydir
rd /S /Q ALL\A3\B3
md C:\mydir\ALL\A1\B4
md C:\mydir\ALL\A1\B5
rd /S /Q ALL\A2\B2
copy C:\mydir\ALL\first.txt ALL\A2\one.txt
copy C:\mydir\ALL\*.txt ALL\A2\B1\C2\
type C:\mydir\ALL\A2\B1\C2\*.txt > ALL\A2\B1\C2\man.txt
type C:\mydir\ALL\A2\B1\C2\man.txt
copy C:\mydir\ALL\A2\B1\C2\man.txt ALL\
tree /a /f ALL
Рисунок 16. Дерево каталога ALL
Теперь приступим к выполнению индивидуального задания.
Напишем командный файл Tree.bat, который создает и выводит на экран дерево каталогов (см. вариант). Запретим вывод исполняемых команд на экран. Результат выполнения на Рис. 17.
@ECHO OFF
md C:\Variant8
cd C:\Variant8
md C:\Variant8\GUAP\Person
md C:\Variant8\GUAP\Ability
md C:\Variant8\GUAP\Performance\Qualitie
md C:\Variant8\A1\B1
md C:\Variant8\A2
md C:\Variant8\A3
md C:\Variant8\B3
md C:\Variant8\B2\C1
md C:\Variant8\B2\C2
md C:\Variant8\B2\C3
tree C:\Variant8
Рисунок 17. Результат выполнения файла Tree.bat
Изменим командный файл – Tree2.bat - таким образом, чтобы названия каталогов A1, A2, A3, Person можно было задавать в качестве параметров командного файла (Рис. 18).
@ECHO OFF
md C:\Variant9
cd C:\Variant9
md C:\Variant9\GUAP\%4
md C:\Variant9\GUAP\Ability
md C:\Variant9\GUAP\Performance\Qualitie
md C:\Variant9\%1\B1
md C:\Variant9\%2
md C:\Variant9\%3
md C:\Variant9\B3
md C:\Variant9\B2\C1
md C:\Variant9\B2\C2
md C:\Variant9\B2\C3
tree C:\Variant9
Рисунок 18. Создание дерева каталогов с параметрами имен
Напишем командный файл Treedel.bat, который удаляет созданное дерево каталогов.
@ECHO OFF
rd /s/q D:\Variant12\
Создадим командный файл Copy.bat, копирующий в интерактивном режиме файл, имя которого должно быть задано пользователем в процессе диалога:
Выведем на экран разработанное в п.2 дерево каталогов.
Создадим сообщение: «Specify the name of the copy source directory».
Введем имя каталога-источника.
Создадим сообщение: «Specify the name of the copy destination directory».
Введем имя каталога-назначения.
Создадим сообщение: «Specify the name of the file to copy».
Выполним копирование файла.
Подтвердим выполнение команды копирования путем обновления дерева каталогов.
@ECHO OFF
md C:\Variant1
cd C:\Variant1
md C:\Variant1\GUAP\%4
md C:\Variant1\GUAP\Ability
md C:\Variant1\GUAP\Performance\Qualitie
echo FILE > C:\Variant1\GUAP\Performance\Qualitie\File.txt
md C:\Variant1\%1\B1
md C:\Variant1\%2
md C:\Variant1\%3
md C:\Variant1\B3
md C:\Variant1\B2\C1
md C:\Variant1\B2\C2
md C:\Variant1\B2\C3
tree /f C:\Variant1
set /p Source= Specify the name of the copy source directory
set /p Dest= Specify the name of the copy destination directory
set /p File= Specify the name of the file to copy
copy %Source%\%File% %Dest%
tree /f C:\Variant1
Результат исполнения файла Copy.bat на Рис. 19.
Рисунок 19. Исполнение файла Copy.bat
Создадим командный файл, который имеет в качестве параметра Командной строки ПОЛНОЕ имя некоторого файла. На диске создайте новую папку, имя которой совпадает с расширением этого файла и скопируйте все файлы, начинающиеся на букву V, созданного в п.2 дерева каталогов в эту папку.
Выполнение файла на Рис. 20.
@ECHO OFF
set papka= %~x1
md %papka%
robocopy Variant9\ %papka%\ V*.* /s
Рисунок 20. Исполнение .bat файла
Вывод
В ходе данной лабораторной работы мы получили практические навыки разработки командных файлов .bat для Командной строки Windows, научились работать с каталогами, атрибутами, параметрами и переменными в таких файлах.