Министерство образования Российской Федерации
Саратовский государственный технический университет
Работа с пакетными файлами в среде windows
Методические указания к лабораторной работе
по курсу «Операционные системы»
для студентов специальности 220200
дневной формы обучения
Одобрено
редакционно-издательским советом
Саратовского государственного
технического университета
Саратов 2010
РАБОТА С ПАКЕТНЫМИ ФАЙЛАМИ
В СРЕДЕ WINDOWS
Методические указания к лабораторной работе
по курсу «Операционные ситемы»
-
Составили:
ПЕТРОВ Дмитрий Юрьевич
МАКСИМОВА Наталия Николаевна
БАРЫШНИКОВА Елена Сергеевна
Рецензент А.Ф. Резчиков
Редактор О.А. Панина
Лицензия ИД № 06268 от 14.11.01
Подписано в печать 27.10.10 Формат 60х84 1/16
-
Бум. тип.
Усл. печ. л. 0,93 (1,0)
Уч.- изд. л. 0,9
Тираж 100 экз.
Заказ
Бесплатно
Саратовский государственный технический университет
410054 г. Саратов, ул. Политехническая, 77
Введение
В методических указаниях рассматриваются структура пакетных файлов, методика создания этих файлов, методы автоматизации выполнения нескольких операций.
Методические указания содержат описание интерпретатора команд, структуры пакетных файлов, описание функций, используемых в командных файлах, примеры решений учебной задачи, задание для выполнения лабораторной работы, требования к оформлению отчета по лабораторной работе, а также список литературы, необходимой для выполнения данной лабораторной работы.
Методические указания предназначены для студентов специальности 220200, а также могут быть использованы студентами других специальностей, связанных с разработкой системных программ.
Цель работы: создание пакетных файлов, автоматизирование выполнение нескольких заданий при установке и загрузке Windows, оптимизация и повышение надежности функционирования системы.
Интерпретатор команд и пакетные файлы
Пакетный файл (англ. batch file) — текстовый файл в MS-DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла, программа — интерпретатор (как правило COMMAND.COM или CMD.EXE) читает его строка за строкой и последовательно исполняет команды..
В Windows используется два интерпретатора команд commad.com и cmd.exe, которые можно запустить через меню «Пуск» (Пуск-> Выполнить-> cmd -> ОК или Пуск-> Выполнить-> commad -> ОК). На рис. 1 показана возможность использования справки по командам DOS/Windows. Справка становится доступной при наборе команды help в командной строке.
Рис.1 Интерпретатор команд commad.com
На рис. 2 показана возможность создания нового файла с использованием команды copy con имя_файла.расширение.
Рис.2. Интерпретатор команд cmd.exe
Использование пакетных файлов (*.cmd или *.bat) помогает автоматизировать выполнение нескольких заданий при установке и загрузке Windows. При этом никакого вмешательства пользователя не требуется. Эти файлы могут быть выполнены из cmdlines.txt, svcpack.inf, RunOnceEx раздела в реестре, или из секции [GuiRunOnce] в файле winnt.sif.
Пакетные файлы поддерживают все команды, которые могут быть выполнены из командной строки. Чтобы увидеть командую строку достаточно проделать следующее: Пуск->Выполнить->cmd->ОК
Рассмотрим простейший пакетный файл. Для этого необходимо открыть Блокнот и набрать в нем следующий текст:
TITLE Batch File Testing
ECHO Hello World
ECHO.
ECHO Starting Notepad
START notepad
ECHO. ECHO Starting Wordpad
START Wordpad
ECHO.
PAUSE
EXIT
Затем нужно сохранить файл с любым именем и в любом месте, но с расширением *.cmd (а не .txt, которое Блокнот присвоит по умолчанию). При запуске этого файла он назначит окну имя "Batch File Testing", запустит Блокнот и WordPad, попросит нажать любую клавишу для продолжения работы и закроет окно.
Таблица 1
Значения команд, использованных в пакетном файле
@echo off |
Скрывает строку C:\> и все команды, используемые в пакетном файле |
echo. |
Создает пробел между строками |
echo message |
Отображает сообщение в окне, исключительно с информационными целями |
Title |
Название окна |
Start |
Запускает приложение или установочный процесс |
Pause |
Отображает сообщение "Press any key to continue..." ("Нажмите любую клавишу для продолжения...") |
Exit |
Закрывает командную строку |
При добавлении приложения для автоматической установки с инсталляционного диска XP, команды будут выглядить следующим образом:
start /wait %systemdrive%\install\some_application\setup.exe /ключ /еще ключ,
start запустит установку приложения, а /wait дождется ее окончания перед тем, как выполнить установку следующего приложения. Использование /wait очень важно, т.к. в противном случае одновременно запустится установка сразу нескольких приложений и конфликты неизбежны.
Пакетные файлы могут быть запущены из cmdlines.txt или svcpack.inf, которые будут исполнены на Т-13/Т-12 этапе установки Windows (Т-13 означает 13 минут до окончания установки).cmdlines.txt удобен для таких задач как Добавление Пользователей, или для импортирования заранее подготовленных ключей реестра HKEY_CURRENT_USER в профиль по умолчанию (Default Profile).
Метод svcpack.inf, как правило, используется для установки обновлений (хотфиксов). Однако ничто не мешает рассматривать пакетный файл как еще один хотфикс.
Пример содержимого пакетного файла:
@echo off
TITLE Windows XP SP2 - Unattended Installation
ECHO.
ECHO Over the next few minutes you will see automated installations
ECHO of various sofware applications, and registry tweaks being
ECHO implemented.
ECHO.
ECHO Removing Wallpapers and Screensavers...
DEL "%systemroot%\*.bmp"
DEL "%systemroot%\Web\Wallpaper\*.jpg"
DEL "%systemroot%\system32\dllcache\*.scr"
DEL "%systemroot%\system32\*.scr"
ECHO.
ECHO Removing useless shortcuts...
DEL "%systemdrive%\Documents and Settings\All Users\Start Menu\Windows
Update.lnk"
DEL "%systemdrive%\Documents and Settings\All Users\Start Menu\Set
Program Access and Defaults.lnk"
DEL "%systemdrive%\Documents and Settings\All Users\Start Menu\Windows
Catalog.lnk"
ECHO.
ECHO Installing TweakUI 2.10 Powertoy
ECHO Please wait...
start /wait %systemdrive%\Install\TweakUI.msi /qn
ECHO.
ECHO Applying Registry Tweaks...
REGEDIT /S %systemdrive%\Install\RegTweaks.reg
ECHO.
ECHO Deleting ASP.NET User Account created by .NET Framework 1.1...
net user aspnet /delete
ECHO.
EXIT
Данный пакетный файл производит удаление обоев и скринсэйверов, устанавливаемых по умолчанию системой, а также некоторых ярлыков. Затем устанавливает TweakUI, импортирует ключи реестра и удаляет учетную запись ASP.NET, созданную при установке .NET Framework.
Вызов внешних командных файлов:
1. После выполнения вызванного файла управление не передается в вызывающий файл.
@ECHO OFF
CLS
REM Вывод списка log-файлов
DIR C:\*.log
REM Передача выполнения файлу f.bat
f.bat
COPY A:\*.* C:\
PAUSE
2. После выполнения вызванного файла управление передается в вызывающий файл:
@ECHO OFF
CLS
REM Вывод списка log-файлов
DIR C:\*.log
REM Передача выполнения файлу f.bat
CALL f.bat
COPY A:\*.* C:\
PAUSE
Файл cmdlines.txt нужно положить в директорию $OEM$, и Windows автоматически найдет его во время установки. Все пакетные файлы, запускаемые из cmdlines.txt, должны находиться в той же директории, что и cmdlines.txt.
Файл svcpack.inf сохраняется в директории I386 на инсталляционном диске (необходимо удалить оттуда svcpack.in_). Все пакетные файлы, запускаемые из svcpack.inf, должны находиться в директории I386\svcpack, если только это не прописано иначе в самом файле.
В пакетных файлах широко используются команды передачи управления IF, FOR, SHIFT, а также параметры, передаваемые из командной строки и операторы перенаправления ввода-вывода >, >>, <, |. Полезными оказываются операторы: «+» ‑ слияния файлов, «?» ‑ замены одного символа в имени файла или расширении, «*» ‑ замены нескольких символов в имени файла или расширении.
Системными именами являются: CON, NULL, AUX, COM1, COM2, PRN, LPT1, LPT2. Ими нельзя называть файлы.
Не смотря на то, что теперь пользователи компьютеров могут легко обойтись без знания DOS, тем более, что в новых ОС DOS похоже будет отсутствовать вообще, их знание может, пригодятся в нештатных ситуациях, когда Windows по каким-то причинам запускаться не желает и доступна только командная строка. Справку по командам можно, получить, выполнив команду help.