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

Обновлено: 03.07.2024

операционная система, интерфейс командной строки, MS-DOS.


  • получение навыков и умений в создание структуры каталогов с помощью пакетных командных файлов;

  • получение навыков и умений в просмотр и удаление файлов с помощью пакетных командных файлов;

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

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

Справочно-методический материал

Пример запуска пакетного файла START:

start_,или_запуск_с_параметром:C_:\>class.bat'>C:\>start ,

или запуск с параметром:

C:\>class.bat Иванов Петров Сидоров


  • встроенные команды DOS;

  • обращения к исполнимым программам;

  • вызовы других пакетных файлов;

  • специальные команды для управления выдачей на экран;

  • специальные команды для организации ветвлений и циклов;

  • метки.

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

Важное свойство пакетных файлов – возможность задания в их текстах формальных параметров. В пакетных файлах могут использоваться формальные параметры %1 - %9. Доступ к параметрам в командном файле осуществляется следующим образом:

%номер_параметра (например, %1 – Иванов, %2 - Петров).

Рассмотрим действие специальных команд, позволяющих управлять интерпретацией командных файлов. К ним, как указывалось, относятся команды GOTO , IF , FOR , SHIFT , а также команда EXIT, играющая особую роль при рекурсивном (вложенном) вызове командных файлов.

Команда GOTO

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

echo Вывод на принтер файла %1

echo Для остановки нажмите CTRL-C

copy %1 prn

pause

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

Начинается циклическое исполнение файла PR.BAT с фактическим параметром DOCUM.DOC. На принтер начнут выдаваться одна за другой копии этого текстового файла, прерываемые паузами после каждой очередной копии. Пользователь может прервать исполнение этого командного файла, нажав одновременно клавиши CTRL-C.

Команда IF позволяет проверять условие и выполнять ветвление в зависимости от результата его проверки.

Она имеет три формата:

Формат 1. Проверка кода завершения какой-либо программы, сработавшей перед оператором IF.

Используется конструкция следующего вида:

IF ERRORLEVEL

Любая программа может с помощью специального прерывания DOS выработать в момент своего окончания собственный код завершения. Этот код сравнивается с числом N. Условие считается выполненным (истинным), если выработанный код завершения равен или больше указанного числа N.

Формат 2. Проверка наличия файла в каталоге.

В этом случае начало оператора IF имеет вид:

IF EXIST

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

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

Соответствующая конструкция может иметь вид:

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

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

Соответствующая конструкция может иметь вид:

-строка1==-строка2 (например, -%1==-Петров)

EXIST имя файла (условие ИСТИНА, когда файл существует)

NOT EXIST имя файла (условие ИСТИНА, когда файл не существует)

Команда FOR

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

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

for %%A in (PAS OBJ EXE) do copy PROG.%%A е:

Здесь формальный параметр %%A последовательно сопоставляется со списком фактических параметров в круглых скобках и используется в команде COPY, которая в данном случае сработает 3 раза подряд.

Подставив в качестве второго аргумента команды COPY вместо имени Е: еще один формальный параметр %1, можно будет менять назначение копирования, задавая его с терминала.

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

Команда SHIFT

Команда SHIFT вызывает сдвиг списка формальных параметров относительно списка фактических параметров.

Так, если в командном файле фигурируют формальные параметры %1 и %2, а в обращении к командному файлу - фактические параметры A, B, C, D, то сначала соответствие формальных и фактических параметров выглядит следующим образом:

3.3.1 В корневом диске с помощью командной строки создать дерево каталогов как показано на рисунке:


Рисунок 15 Дерево каталогов

3.3.2 В каталоге All с помощью командной строки создать следующие файлы: 1.txt, 2.txt, 3.txt, lab1.pas, lab2.pas, face.bmp, foot.bmp, arm.bmp, beatles.mp3, rock.mp3.

3.3.3 Создать пакетный командный файл zad3.batв каталоге All, описать следующую последовательность команд и прокомментировать каждую из них.

· Удалить каталог В3, в каталоге А1 создать подкаталоги В4 и В5 и удалить каталог В2.

· Скопировать файл lab1.pas в каталог А2 и переименовать его в файл lab3.pas.

· Очистить экран от служебных записей.

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

· Скопировать все графические и текстовые файлы из каталога All в каталог С2.

· Объединить все текстовые файлы, хранящиеся в каталоге С2, в файл man.txt и вывести его содержимое на экран.

· Скопировать файл man.txt в директорию А1.

· Вывести на экран информацию о структуре каталога All.

3.4 Создать пакетный командный файл zad4.batв каталоге All, решающий определенную задачу (по вариантам):

Вариант №1. Создать командный файл при вызове, которого указать фамилию запускающего. Если запустил Иванов, то вывести строку: "Нет доступа", если запустил Петров, то вывести строку: "Не сегодня". Для всех других пользователей вывести информацию каталоге, из которого был запущен bat-файл.

Вариант №2. Создать командный файл, который бы выводил на экран все файлы заданного расширения. Если расширение при вызове командного файла не заданно вывести: "Расширение не введено", если в текущем каталоге файлов с таким расширением нет, то вывести: "Файлов не найдено".

Вариант №4. Создать командный файл, который бы удалял все файлы заданного расширения. Если расширение при вызове командного файла не заданно вывести: "Расширение не введено", если в текущем каталоге файлов с таким расширением нет, то вывести: "Файлов не найдено".

Вариант №5. Создать командный файл, при вызове которого указываются фамилии студентов, выполняющих лабораторную работу. Если такой студент один, вывести на экран "Работает один". Если их двое, то вывести "две головы лучше". Если больше двоих, то "Толпа". Если никто не работает, то "Где все?".

Вариант №6. Создать командный файл, при вызове которого указывается модель процессора семейства Intel Pentium (I, II, III, IV). Каждой такой модели сопоставить тактовую частоту и вывести её на экран.

Вариант №7. Создать командный файл, при вызове которого указывается марка автомобиля. Каждой такой марке сопоставить максимальную скорость и вывести её на экран. Если такой марки нет, то вывести "Не существует, Вы ошиблись".

Вариант №8. Создать командный файл, который выполнял следующие действия: при вызове с параметром 1 - создавал каталог NEW, с параметром 2 - выводил информацию о текущем каталоге, с параметром 3 - информацию о версии системы, с любым другим параметром - фразу "такая команда не определена".

Вариант №9. Создать командный файл, при вызове которого указываются фамилии двух студентов. Если первый Иванов, то вывести фразу "В классе будет шумно", если второй Петров, то вывести фразу "В аудитории будет гам". Если первый Иванов и второй Петров, то вывести фразу "Аудитории вообще не будет". Если их нет, то вывести фразу "Все спокойно".

Вариант №10. Создать командный файл, с помощью команды PAUSE реализовать следующие действия: вывести на экран "Отформатировать диск С:\? Да/Нет" и дождаться реакции пользователя, после любого действия пользователя вывести на экран "Вы точно хотите отформатировать диск С:\ ? Да/Нет" и дождаться реакции пользователя, далее вывести "Диск С:\ - отформатирован. До встречи!"

3.5 Создание пакетных файлов.Создайте следующие пакетные файлы, которые выполняют следующие действия:

3.5.1 1.bat в папке E:\OC создает подпапку 1, в которой создает текстовые файлы 1.txt, 2.txt. Затем переименовывает файл 1.txt в 3.txt.

3.5.2 2. bat удаляет D:\OC\1.

3.5.3 Создайте два файла 31.bat и 32.bat, которые демонстрируют работу оператора call.

3.5.4 4.batкопирует указанный файл в подготовленную заранее папку.

3.5.5 5.batсообщает, существует ли указанный файл.

3.5.6 6.bat.Если в качестве параметра указать 1.txt и он есть, то скопировать его в папку E:\OC\1. Иначе сообщить, что не выполнено.

3.5.7 7.batсоздает папку E:\OC\7 и копирует в нее файлы с расширениями txt и bat из текущей папки (использовать команду for).

3.5.8 8.bat удаляет папку E:\OC\7.

3.5.9 Изучитеподробнокоманды set, color, title, pause, start, cmd, if, prompt. Приведите примеры пакетных файлов с использованием указанных команд. Для этого в режиме командной строки наберите название команды и “/?”. Например, title/?. Создайте текстовый файл с описанием указанных команд.

3.5.10 Реализуйте калькулятор с использованием bat-файлов. После вычисления значения реализуйте возможность запроса на повторное вычисление. Для этого используйте конструкцию вида set /p var0=”Фраза” с последующей проверкой.

3.5.11 Создайте 2 bat-файла – первый настраивает под Ваши предпочтения командную строку и цветовую гамму, второй восстанавливает исходное состояние.

3.5.12 Реализуйте 2 bat-файла для открытия одного и того же html-документа средствами Internet Explorer и MozilaFireFox.

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

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

3.5.15 Создайте bat-файл с использованием if. Например, запрашиваются 3 числа, выводится наибольшее и наименьшее.

3.5.16 Изучить возможности for для создания рекурсий. Вывести содержимое всех подкаталогов каталога E:\OC.

3.5.17 Создать “большой” пакетный файл, производящий очистку определенных папок.

3.5.18 Создать пакетный файл, который бы заменял некий файл на диске.

3.5.19 Пакетный файл для резервного копирования.

4 Содержание отчёта:

4.1 Файлы и каталоги, согласно задания.

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

5 Контрольные вопросы:

5.1 Является ли пакетный файл исполняемым?

5.2 Является ли он загрузочным?

5.3 В каких случаях, по Вашему мнению, целесообразно использовать пакетные файлы?

5.4 Какие условия можно проанализировать в командном файле?

5.5 Что позволяет оператор FOR?

5.6 При сравнении текстовых констант отличается ли большая буква от маленькой?

1.1 Цель работы: изучить назначение командных файлов и получить практический опыт по созданию и использованию файлов данного типа.

1.2 В результате выполнения лабораторной работы студент должен

Назначение командных файлов;

уметь: создавать командные файлы.

1.3 Используемые программно-технические средства:

Персональная ЭВМ класса IBM PC стандартной конфигурации; операционная система Windows XP /7, Microsoft Office 2007.

1.4 В процессе выполнения лабораторной работы студент должен:

изучить теоретический материал;

выполнить практическое задание;

подготовить отчет по лабораторной работе;

отчитаться по исполненному заданию.

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

Указания по оформлению отчета:

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

1.6 Указания по сдаче зачета преподавателю

Для сдачи зачета необходимо:

1) предъявить отчет;

2) ответить на контрольные вопросы.

2. ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ

Пакетные файлы в DOS имеют расширение .BAT; для других операционных систем они могут иметь другие расширения — например, .CMD в Windows NT.

Основная область применения — автоматизация наиболее рутинных операций, которые регулярно приходится совершать пользователю компьютера: например, копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п. Многие вирусы написаны в виде пакетного файла.

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

Командные файлы создаются обычно каким-либо текстовым редак-тором.

Пример 1. Командный файл, который создает две папки и осуществляет копирование файлов:

Создание каталога DOCUMENT на диске D

Создание каталога TEXT на диске D

COPY D:\*.DOC D:\DOCUMENT

Копирование всех файлов типа .DOC с диска D : в каталог DOCUMENT диска D:

COPY D:\*.TXT D:\TEXT

Копирование всех файлов типа .ТХТ с диска D : в каталог TEXT диска D:

Символы и команды по управлению командными файлами

Символ @. По умолчанию команды пакетного файла выводятся на экран перед выполнением. Можно избежать вывода на экран любой от-дельной строки файла. Для этого надо поставить в начале этой строки сим-вол @.

Команда ECHO . Предназначена для включения и выключения эхо-отображения (протокола выполнения) команд на экран.

Echo on - включает режим вывода выполняемых команд на экран;

Echo off - выключает отображение команд;

Пример 2: Внесём изменения в ранее созданный командный файл:

COPY D:\*.DOC D:\DOCUMENT

COPY D:\*.TXT D:\TEXT

В результате выполнения команды на экран будет выведена только первая команда (ECHO OFF) и информация о скопированных файлах. Для того чтобы команда ECHO OFF не выводилась на экран, перед ней нужно поставить символ @.

Пример 3: Текст командного файла K1.BAT:

С: (замените на нужный диск)

Данный командный файл выполняет следующие действия: очищает экран; переходит на диск С; переходит в корневой каталог; выдает на экран содержимое корневого каталога.

Комментарии. Комментарии в командный файл позволяет включать команда REM. Комментарии не интерпретируются как команды во время выполнения файла. Комментарии употребляются для улучшения удобочи-таемости командного файла.

Синтаксис: REM любые_символы

Команда CALL. Предназначена для вызова одного командного файла из другого с последующим возвратом в точку вызова.

Синтаксис: CALL имя_файла [параметры]

Пример 4:

PAUSE просмотрим файл

Пример 5: Пусть необходимо создать командный файл cop . bat для копирования файла из папки NAME 1 в папку NAME 2

COPY D :\ NAME 1\%1 D : \ NAME 2

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

путь\ cop primer . txt

При выполнении этого командного файла символ %1 (формальный параметр) будет заменен на значение первого параметра при вызове командного файла, т.е. вместо %1 будет подставлено primer . txt и будет выполнена команда

COPY D:\NAME1\primer.txt D: \NAME2

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

Что такое командный файл?

Для чего используются пакетные файлы?

Какое расширение имеют файлы данного типа?

Как создать командный файл?

Опишите основные команды: @, echo , call , rem . Приведите примеры

Для чего используются параметры? Приведите пример.

ПРАКТИЧЕСКИЕ ЗАДАНИЯ

Выполните примеры: 1, 2, 3 (создать командные файлы и проверить их работоспособность).

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

- создать на диске С:\ папку RPK ;

- создать в папке RPK папку Students ;

- в папке студенты создать папку 2 B ;

- в папке 2 B создать текстовый файл с именем ivanov . txt ;

- скопировать данный файл в папку RPK ;

- переименовать в папке RPK файл ivanov . txt на petrov . txt ;

- удалить из папки 2 B файл ivanov . txt ;

1. Написать командный файл, который будет копировать из текущего каталога все файлы с расширением txt, кроме одного файла, указанного в качестве второго параметра командной строки, в каталог, указанный первым параметром.

2. Создать командный файл, который выводил бы содержимое каталога, указанного в качестве параметра командной строки, причем пользователю должна быть предоставлена возможность выбора устройства для вывода: на экран (информация выводится по одному экрану), в текстовый файл catalog.txt.

3. Написать пакетный файл, который автоматически удалял бы в каталоге, указанном в командной строке все файлы, размер которых превышает 2 Мбайт.

4.Пусть имеется текстовый файл sums.txt с разделителями следующего формата:

Петров Петр Петрович 1450

Иванов Иван Иванович 1200

Необходимо написать пакетный файл seeksum.cmd, который запускался бы с двумя параметрами командной строки:

MIN МАХ

где min — минимальная сумма, мах — максимальная сумма, и искал в файле sums.txt всех людей, у которых сумма меньше либо равна мах, но больше либо равна min. Информацию выводить в файл suminfo.txt

5. Проверить существование в текущем каталоге подкаталогов backup1, backup2, buckup3. Если их не существует - создать их. Скопировать все файлы с заданным расширением из текущего каталога в каталоги с именами backup1, backup2, buckup3. Расширение задается параметром командной строки.

6. Разработать пакетный файл movefile.bat на вход которого передается список расширений файлов (например, movefile.bat pas java cpp). Создать в каталоге подкаталоги с соответвующими расширениям именами. Перенести файлы с заданным расширением в свой каталог.

7. Разработать пакетный файл list.bat на вход которого передается список расширений файлов (например, list.bat pas java cpp). Получить списки файлов текушего каталога с указанными в командной строке расширениями. Списки помещаются в фалы, имя которых соответсвует указанному расширению, а тип -lst. Для нашего примера должны быть сформированы три файла pas.lst, java.lst, cpp.lst.

8. Разработать пакетный файл concat.bat на вход которого передается два параметра NAME и EXT (например,concat.bat f txt). Пакетный файл объединяет содержимое исходных файлов вида NAMEn.EXT, где (n=0,1. 9) в файле NAME.EXT. Для объединения использовать команду вида COPY f1.txt+f2.txt f.txt. Обработанные файлы перемещаются в каталог backup.

9. Разработать пакетный файл clear.bat на вход которого передается список расширений файлов (например, clear.bat pas java cpp). Пакетный файл оставляет в текущем каталоге только файлы с указанными расширениями, а остальные перемещает в подкаталог bakup.

10. Создать командный файл, который бы удалял все файлы заданного расширения. Если расширение при вызове командного файла не заданно вывести: "Расширение не введено", если в текущем каталоге файлов с таким расширением нет, то вывести: "Файлов не найдено".

11. Создать командный файл, который выполнял следующие действия: при вызове с параметром 1 - создавал каталог NEW, с параметром 2 - выводил информацию о текущем каталоге, с параметром 3 - информацию о версии системы, с любым другим параметром - фразу "такая команда не определена".

12. Создать командный файл, при вызове которого указываются фамилии двух студентов. Если первый Иванов, то вывести фразу "В классе будет шумно", если второй Петров, то вывести фразу "В аудитории будет гам". В противном случае вывести фразу "Все спокойно".

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

14. Для заданной в качестве параметра скрипта папки найти все файлы, размер которых превышает заданный в качестве параметра.

РЕШЕНИЕ:

1.

@ECHO OFF

If Exist %temp%\excludefiles del %temp%\excludefiles

echo %2 > %temp%\excludefiles

xcopy *.txt %1\ /EXCLUDE:%temp%\excludefiles

2.

@ECHO OFF

CLS

IF -%1==- GOTO NoDir

REM Вывод меню на экран

ECHO A - На экран




Читайте также: