по лабораторной работе № 2 на тему: «BAT файлы»
ОТЧЕТ Выполнил: студент гр. K-751,Главинская А. Проверила: ст. преп. СИ Глушкова И.И.
г. Улан-Удэ 2017г
Цель работы: Изучить и научиться правильно создавать bat-файлы
Вопросы к лабораторной работе «ОС MS-DOS» 10. Поясните назначение файлов пакетной обработки и особенности командного файла автозапуска - AUTOEXEC.BAT. Пакетные файлы полезны для автоматического запуска приложений. Основная область применения — автоматизация наиболее рутинных операций, которые регулярно приходится совершать пользователю компьютера: например, копирование, перемещение, переименование, удаление файлов; работа с папками; архивация и т. п. Вирусы и программы-шутки могут быть написаны в виде пакетного файла, известны также генераторы вирусов, являющиеся пакетными файлами. 11. Расскажите о замещаемых параметрах в командных файлах. Внутри командного файла допускается использование замещаемых паpаметpов. Параметр - это символьная пеpеменная, расположенная в командной стpоке после имени команды. Он содержит дополнительную информацию, необходимую опеpационной системе пpи обpаботке команды. Паpаметpом, например, может быть имя файла, к которому относится действие команды. Замещаемый параметр - это специальная переменная, которая в процессе выполнения команды подменяется обычным паpаметpом (например, именем файла). В командном файле замещаемый паpаметp обозначается знаком процента (%) и цифрой от 0 до 9. Таким образом, командный файл может включать до десяти замещаемых параметров. Символьные переменные, предназначенные для подмены замещающего параметра, вводятся в командной строке при обращении к командному файлу - набирается команда старта (имя файла) и список паpаметpов в порядке, соответствующем последовательности замещаемых параметров внутpи файла. Пpи введении замещаемых паpаметpов командный файл становится более гибким.
12. Расскажите о замещаемых символах в командных файлах. Замещаемые символы - это специальные символы, используемые для обозначения одного или нескольких символов имени файла. В MS-DOS их два: звездочка (*) и вопpосительный знак (?). Вопpосительный знак заменяет только один символ имени или pасшиpения, звездочка - гpуппу символов. Замещаемые символы особенно удобны в пpименении с командами DIR, COPY, ERASE и RENAME, т.к. действие этих команд часто pаспpостpаняется на несколько файлов. 13. Опишите принцип работы команды IF. IF <условие> <следствие>- проверяет истинность какого-либо <условия> и в зависимости от этого выполняет или не выполняет команду <следствие>. 14. Опишите принцип работы команд REM и ECHO. REM [текст]-служит для ввода комментариев. Любой текст, расположенный в строке после нее, будет считаться комментарием и не выполняется. Это бывает полезно при отладке программы или временном "выключении" некоторых строк файла. ECHO [ON | OFF | Текст]- используется для управления эхо-режимом, то есть режимом отображения на экране служебной информации. ECHO OFF запрещает этот вывод, а ECHO ON - разрешает. ECHO <Текст> используется для вывода текста на устройство. То есть, команда «ECHO Привет!» выведет на экран "Привет!". А команда «ECHO ATDP 21435 > COM2» пошлёт на устройство на порте COM2 (например, на модем) команду ATDP 21435, то есть, набор номера 21435. 15. Опишите принцип работы команд CHOICE и FOR. FOR %<параметр> IN () DO <команда> 16. Опишите принцип работы команд SHIFT Изменяет позицию параметров в командном файле. Команда SHIFT изменяет значения замещаемых параметров с 0 по 9, копируя каждый параметр в предыдущий, то есть значение 1 копируется в 0, 2 - в 1 и т.д. Это полезно для написания командного файла, выполняющего с любым числом параметров одну и ту же операцию. С помощью SHIFT вы можете также построить командный файл, воспринимающий более 10 параметров: те параметры, которые задаются после десятого (%9), будут сдвигаться по одному в %9.Команда, обратная SHIFT (обратный сдвиг), отсутствует. После выполнения SHIFT вы не сможете восстановить первый параметр (0), который был перед сдвигом.
Задание 1. Пусть имеется текстовый файл protokol.txt, в котором хранится журнал обработанных файлов в следующем формате: <имя файла> <дата> <время> Слово дата здесь начинается в каждой строке с двадцатой позиции. Необходимо написать командный файл, с помощью которого сделать выборку из этого файла (т. е. создать новый текстовый файл с нужной информацией) за заданный месяц (мм) и год (гггг) в файл ммгггг-.txt, сформированный файл упорядочить по дате обработки. Нужные месяц и год указать как параметры командной строки. Решение: 1) Создаем файл protokol.txt. Вводим: COPY CON PROTOKOL.TXT Далее вводим: rtg.txt 02.01.2001 14:50 fghd.txt 03.02.2001 23:50 gjfl.txt 02.01.2001 12:00 asft.txt 10.01.2000 13:00 Нажимаем: Ctrl+z. 2) Запускаем cmd.exe, находим путь к файлу protokol.txt и вводим: COPY CON 1.bat 3)Вводим: @ЕСНО OFF RЕМ Проверка наличия параметров командной строки IF -%1==- GOTO NoParam IF -%2==- GOTO NoParam REM Выделение нужных строк из файла protokol.txt FIND "%1.%2" protokol.txt | SORT /+26 > %l%2.txt GOTO End :NoParam ECHO He заданы необходимые параметры командной строки! PAUSE :End 4) Нажимаем: Ctrl+z 5) Далее запускаем наш файл в виде <имя файла> <месяц> <год> это должно выглядеть так: 1 02 2001 6) После проделанной работы создаться файл с нужной информацией.
2. Написать командный файл, который будет копировать из текущего каталога все файлы с расширением txt, кроме одного файла, указанного в качестве второго параметра командной строки, в каталог, указанный первым параметром. Если имя каталога, в который должно производиться копирование, не задано, то вывести сообщение об этом и прервать выполнение файла. Решение: Для выполнения поставленной задачи можно перебрать в цикле все файлы с расширением txt, проверяя перед
копированием имя каждого из этих файлов: 1) Запускаем cmd.exe, находим путь в каталог с текстовыми файлами и вводим: COPY CON 2.bat 2)Вводим: @ЕСНО OFF REM Проверка наличия параметра командной строки IF -%!==- GOTO NoDir RЕМ Копирование нужных файлов FOR %%f IN (*.txt) DO IF NOT -%%f==-%2 COPY %%f %1 GOTO End :NoDir ECHO He указан каталог для копирования! PAUSE :End 4) Нажимаем: Ctrl+z 5) Далее запускаем наш файл в виде <имя файла> <каталог> <.txt> (файл, который не надо копировать> это должно выглядеть так: 2 os aa.txt 6) После проделанной работы все текстовые документы(кроме указанного вами в параметрах) из каталога, путь к которому вы указали в начале, копируются в указанный вами в параметрах каталог.
3. Задание аналогично второму упражнению. Дополнительные требования: а) переписывать только те файлы, которые новее одноименных в каталоге - приемнике, б) не прерывать копирование в случае возникновения ошибки, в) записывать в файл logcopy.txt имя каждого копируемого файла и результат выполнения операции для него. Другими словами, файл logcopy.txt должен быть примерно таким: Успешно: а.txt Ошибка: b.txt Успешно: с.txt Решение: 1) Запускаем cmd.exe, находим путь в каталог с текстовыми файлами и вводим: COPY CON 3_1.bat 2)Вводим: @ЕСНО OFF REM Копирование файла XCOPY %1 %2 /D /С > NUL REM Проверка успешности копирования IF ERRORLEVEL 0 GOTO Success REM Запись в файл отчета информации об ошибке при копировании ECHO Ошибка: % 1 >> logcopy.log GOTO End :Success REM Запись в файл отчета информации об успешном копировании ECHO Успешно: %1 >> logcopy.log :End 4) Нажимаем: Ctrl+z 5) Запускаем cmd.exe, находим путь в каталог с текстовыми файлами и вводим: COPY CON zzz.bat 6)Вводим: @ЕСНО OFF REM Проверка наличия параметра командной строки IF -%1==- GOTO NoDir RЕМ Копирование нужных файлов FOR %%f IN (*.txt) DO IF NOT -%%f==-%2 CALL 3_1.bat %%f %1 GOTO End :NoDir ECHO He указан каталог для копирования! PAUSE :End 7) Нажимаем: Ctrl+z 8) Далее запускаем наш файл в виде <имя файла> <каталог> <.txt которую не нужно копировать> это должно выглядеть так: aaa copy no.txt 9)После проделанной работы все текстовые документы(кроме указанного вами в параметрах) из каталога путь к
которому вы указали в начале копируются в указанный вами в параметрах каталог. Так же создастся файл logcopy.txt.
4. Создать командный файл, который выводил бы содержимое каталога, указанного в качестве параметра командной строки, причем пользователю должна быть предоставлена возможность выбора с помощью меню устройства для вывода: на экран (информация выводится по одному экрану), в текстовый файл c:\catalog.txt или на принтер. Решение: 1) Создать на диске С catalog.txt 2)Запускаем cmd.exe, указать нужный путь, далее вводим: COPY CON kom.bat 3) @ЕСНО OFF CLS IF -%1==- GOTO NoDir RЕМ Вывод меню на экран ECHO A - На экран ECHO B - В файл C:\catalog.txt ECHO C - На принтер REM Вывод подсказки для ввода CHOICE /C ABC /M "Куда выводить содержимое %1" CLS REM Определение сделанного выбора IF ERRORLEVEL 3 GOTO DirToPrn IF ERRORLEVEL 2 GOTO DirToFile IF ERRORLEVEL 1 GOTO DirToCon ECHO Выбор не был сделан. GOTO End :DirToCon DIR %1 | MORE GOTO End :DirToFile DIR %1 > C:\catalog.txt GOTO End :DirToPrn DIR %1 > prn GOTO End :NoDir ECHO He указан каталог для сканирования! PAUSE :End 4) Нажимаем: Ctrl+z 5)Запускаем бат файл в виде: <название><нужный файл> это выглядит так: kom file.txt 6)После этого она выдает запрос в котором вы должны выбрать куда будет выводиться нужная информация 7)Далее программа выполняет выбранное действие.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|