Лабораторна робота №3
Тема:
Пакетні командні файли і файл конфігурації МSDOS.
Мета:
Вивчення системи команд командного процесора МSDOS і засобів створення пакетних командних файлів.
Хід роботи:
1. Вивчити розділ III "Стислі теоретичні відомості і методичні вказівки".
2. Розробити і відлагодити пакетний командний файл по завданню.
Теоретичні відомості:
Досить часто в процесі роботи з комп'ютером виявляється, що необхідно повторювати одні й ті ж команди МSDOS(можуть бути з невеликими змінами) для того щоб виконати деякі періодичні дії. Операційна система МSDOSдозволяє записати потрібну для цього послідовність команд в спеціальний файл, що називається командним файлом. Командний файл повинен мати розширення. ВАТ. Послідовність команд, записану в файлі, можна виконати, набравши ім'я командного файлу (розширення. ВАТ при цьому можна не вказувати).
Приклад:
Для оптимізації розміщення файлів на жорсткому диску (тобто "стискання" диску) можна використати таку послідовність команд:
с: перехід на диск с:;
сd\ перехід в кореневий каталог;
wipefile*.bак/N/S видалення всіх файлів з розширенням .ВАК з диску с:;
sd с:/а/с стискування диску с:;
Щоб не набирати кожен раз ці команди, створимо файл СОМРАСТ.ВАТ такого змісту:
с:
сd\
wipefile*.bак/N/S
sd с:/а/с
Тоді при введенні команди СОМРАСТ виконується потрібна послідовність команд.
Ви можете перервати виконання командного файлу, натиснувши [Сtrl-С] або [Сtrl - Break]. Після цього на екрані з'явиться запит:
Terminate batch job (Y/N)?
(Перервати виконання командного файлу (Так/ Ні)?)
Якщо відповісти Y, то виконання командного файлу буде завершене, а команди, що залишилися в командному файлі будуть проігноровані. Якщо відповісти N. то виконання командного файлу буде продовжене з наступної команди.
Відмітимо, що якщо під час натиску [Сtrl-С] програма, що виконується сприймає [Сtrl-С] як сигнал до завершення, то вона буде аварійно завершена незалежно від відповіді на запит.
Останньою командою в командному файлі може стояти ім'я іншого командного файлу; таким чином можна, закінчивши виконання одного командного файлу почати інший.
Якщо вимагається з одного командного файлу викликати інший, а після цього продовжувати виконання вхідного. Це можна зробити командою:
command /с ім'я командного файлу [параметри]
Ця команда викличе для виконання нову копію командного процесора СОММАМО.СОМ і передасть їй для обробки означений командний файл.
В версіях МSDOS, починаючи з 3.3 можна з одного командного файлу викликати інший з допомогою команди CALL:
CALL ім'я командного файлу [параметри]
По замовчуванню команди пакетного файлу виводяться на екран перед виконанням. Якщо вставити в пакетний файл команду ЕСНО ОFF, то команди на екран виводитися не будуть. Команда ЕСНО ON вмикає режим виводу команд, що виконуються, на екран. Часто першим рядком командного файлу буває: ЕСНО ОFF - в цьому випадку на екран виводиться ЕСНО ОFF, а після цього команди, що виконуються, на екран не виводяться.
В версіях МSDOS починаючи з 3.3 можна уникнути виводу на екран ЕСНО ОFF. Для цього перед нею ставиться символ @: @ЕСНО ОFF.
Командні файли з параметрами, що замінюються.
Часто потрібно виконувати одні й ті ж команди або послідовності команд МSDOS тільки з невеликими змінами. Наприклад, для трансляції програми на Фортрані з допомогою транслятора фірми Місrоsоft треба набирати команди типу наступної:
fl/412/AL/Ox/FP i 87/с: ім'я файлу
Щоб спростити виклик цього транслятора можна створити файл FORT.ВАТ такого змісту:
fl/412/AL/Ox/FPi 87/с: %1
При виконанні цього командного файлу значення %1 буде замінене на значення першого параметру при викликові командного файлу. Наприклад, команда Fort
Simpson
.
For
буде замінена на
fl/412/AL/Ox/FPi 87/с:Fort Simpson. For
Всього може використовуватися до дев'ятих параметрів, що позначаються символами %1-%9. Якщо Ви хочете використати більш дев'яти параметрів, треба використати команду SНІFТ.
В командному файлі можна також використати символ %0 ім'я ,що означає файлу ,що виконується.
Якщо в командному файлі знак % використовується не для позначки параметрів, а для інших цілей, наприклад, як частина імені файлу, то його потрібно набрати двічі.
Коментарі в командному файлі
Команда RЕМ дозволяє включити в командний файл коментарі, що не будуть інтерпретуватися як команди. Це робиться для того, щоб файл було зручно читати. Коментарі виводяться на екран по тим же правилам, що й звичайні команди.
ФОРМАТ: RЕМ будь-які символи,
Повідомлення при виконанні командного файлу
Команда echо дозволяє видавати на екран повідомлення з командного файлу, навіть якщо режим виводу echooff (відключений).
ФОРМАТ: ЕСНО повідомлення.
Повідомлення не може бути порожнім або мати значення ОN або ОFF оскільки echo без параметрів виводить: включений чи вимкнутий режим виводу (echoon або echooff ).
З допомогою команди echo можна отримати звуковий сигнал комп'ютера. Для цього потрібне включити в повідомлення символ з кодом 7. Його можна отримати, натиснувши клавішу [alt] і, не відпускаючи її, клавішу [7] в правій частині клавіатури "(тобто клавішу [home]).
Для того, щоб вивести на екран порожній рядок, можна використати команду echo з повідомленням, що складається з символу з кодом. 255. Треба натиснути [alt], не відпускаючи її натиснути, послідовно [2] [5] [5] в правій частині клавіатури.
Зупинка виконання командного файлу
Під час виконання командного файлу може виникнути необхідність його зупинення, наприклад, щоб вставити дискету. Для цього використовується команда РАUSЕ. Вона зупиняє роботу командного файлу і чекає доки не буде натиснуто яку-небудь клавішу (ENTER, алфавітно-цифровий клавіша, пропуск або [Ctrl-С]).
При виконанні цієї команди на екрані з'явиться повідомлення:
Strike a key when ready...
(Натисніть будь-який клавішу, коли будете готові)
Якщо натиснути пропуск, ENTER, або алфавітно-цифровий клавішу, то виконання продовжиться. Якщо натиснути [Сtrl-С] або [Сtrl - Break], то відбудеться переривання див. пункт "Виконання командних файлів".
Корисно перед видаванням команди РАUSЕ повідомляти, що потрібно виконати дії.
Наприклад:
echo Вставте дискету DISKO1 у дисковод А:
РАUSЕ
Переходи в командному файлі
Командний файл може містити мітки й команди переходу. Це дозволяє керувати порядком виконання команд в файлі. Будь-який рядок командного файлу, що починається з : сприймається як мітка. Посилати виконання на цю мітку можна з допомогою команди GОТО. Якщо після GOТО мітка не вказана, то процес пакетної обробки завершується.
Приклад:
goto xxx
.
.
: ххх
Перевірка умов в командному файлі
Команда ІF дозволяє в залежності від виконання умов виконувати або не виконувати команди в командному файлі.
ФОРМАТ: ІF "умова" "команда"
"команда" - це будь-яка команда допустима в командному файлі.
"умова" - ця одна з наведених нижче виразів:
Errorlevel "число" - умова істинна, якщо код завершення попередньої команди більше або рівний "числу". Код завершення виробляється програмою по закінченню її роботи, по замовчуванню він рівний 0.
строка1= = строка2 - умова істинна, якщо рядки 1 і 2 повністю співпадають. Якщо в цих рядках є символи %0-%9, то замість них підставляються параметри командного файлу;
EXIT "ім'я файлу" - умова істинна, коли означений файл існує;
NОТ "умова" - істинна, коли умова означена неправдиво.
Приклад:
Створимо файл ТYР.ВАТ, що виводить деякий файл на екран
ФОРМАТ буде: ТYР ім'я файлу
Ми будемо перевіряти, що при викликові заданий параметр і, що означений файл існує.
Командний файл може бути таким:
Echooff
if -%1 == - goto no__ param
іf not exit %1 goto no__ exit
Type %1
Goto exit
:No__ param
echo Повинен бути заданий параметр
Goto exit
:Not__ exit
Echo Файл %1 не знайдений
:exit
Слід помітити, що при порівнянні рядків, що містять %0-%9 потрібно бути обережним. Не слід це робити так:
ІF %2==838.„
Справа в тому, що якщо в командному файлі менше двох параметрів, то %2 буде заміщене порожнім рядком, і при виконанні команди виникне помилка. Ще гірше
ІF SSS== %2„,
оскільки в цьому випадку, якщо в командному файлі менш 2 параметрів можливо виконання зовсім не тієї команди. Правильно так:
іf-%2= =- SSS...
Файл А
UTO
ЕХЕС. ВАТ
Якщо користувачу необхідно, щоб яка-небудь програма виконувалася автоматично кожний раз при запуску МSDOS, він повинен це зробити з допомогою файлу АUTOЕХЕС. ВАТ.
Автоматичне виконання програм ефективно, коли користувач хоче звернутися до спеціального пакету або коли користувачеві необхідно автоматично виконувати командний режим всякий раз, коли запускається система.
Якщо МSDOS знаходить файл АUTOЕХЕС. ВАТ, він негайно виконується процесором консольних команд, і підказки дати і часу обходяться. Якщо МSDOSне знаходить АUTOЕХЕС. ВАТ файл, то виставляються підказки дати і часу.
Необхідно пам'ятати, що якщо використовується файл АUTOЕХЕС. ВАТ, МSDOS не виставляє підказку для введення поточної дати і часу до тих пір, доки команди DАТЕ і ТІМЕ не будуть включені в файл АUTOЕХЕС. ВАТ.
Написання файлу СО
NF
І
G
.
SYS
В кореневому каталозі жорсткого диску, з якого завантажується операційна система, може знаходитися файл СОNFІG. SYS,що задає параметри МSDOS. Файл СОNFІG. SYS«. повинен являти собою текстовий (АSСІІ) файл. Кожний рядок цього файлу має вигляд:
., Ім’я команди = значення
Нижче перераховуються найбільш часто вживані команди ,що використовуються в
файлі СОNFІG. SYS:
Break= on - встановити режим перевірки натиску [Ctrl - Break] при операціях зводу/виводу з диску. Це дозволяє переривати виконання програм, що інакше б виконувалися до свого завершення;
Buffers= число буферів - встановлення числа буферів для операцій вводу/виводу з диску. Для ІВМ РС без жорсткого диску рекомендується 4-5 буферів, для ІВМ РС ХТ с "жорстким диском 10-20 МБайт -15-20 буферів, для ІВМ РС АТ з жорстким диском 20-40М -30-40 буферів;
;
Country=049 (для МSDOS версії 3.2)
Country=049, 437, повне ім'я файлу СОNFІG. SYS(для МSDOS версії 3.3) встановлення зручного формату видачі інформації про дату і часу;
Files=20 - встановлення максимального числа відкритих файлів.
Shell=СОММАND.СОМ /Е "число байтів" /Р - збільшення розміру області пам'яті, в якій зберігаються змінні оточення. "Число байтів" задає розмір цієї області.
Devise
=ім'я
файлу драйвера [параметри] - встановлення драйвера пристрою.
Приклад:
Обслуговування жорсткого диску за допомогою командного файлу
На жорсткому диску можуть з'являтися втрачені кластери (що не належать ані файлам, ані вільному простору), непотрібні файли, і т.д. Тому необхідно періодично обслуговувати жорсткий диск.
1. З допомогою програми chkdsk перевіряється правильність файлової системи на диску, і вертаються втрачені сектори.
2. Командою DELВАК, що реалізується з допомогою командного файлу DELВАК.ВАТ:
Echo off
C:
Wipefile с:\. bak /s/n (програма wipefile входить в комплект NortonUtilities).
3. Час від часу потрібно перевіряти: чи не з'явилися збійні ділянки. Програмаdt
перевірить це і перемістить інформацію зі збійних ділянок на нормальні.
dt с:/ m/b
4. Програму sd можна використати для стискування диску, це зменшить знос диску і збільшить швидкість роботи з диском.
sd с:/а/с
5. Після означених дій бажано зробити архівацію змінених файлів.
Командний файл обслуговування жорсткого диску
Для зручності можна оформити процедуру обслуговування жорсткого диску в вигляді командного файлу:
Echooffecho обслуговування жорсткого диску з:
С:
сd\
chkdsk с:/f
іferrorlevel1 goto exit
Wipefile с:\. bak/s/n
Wipefile с:\. Backup. chi/s/n
Ncd ne/r/s
аsк "перевірити на наявність дефектів [Y/N]?", YN
iferrorlevel1 2 goto continue
dt с:/b/n
: cont
sd с:/а/с
асhіvе
:exit
Тут асhіvе - команда виклику командного файлу асhіvе.bat, що здійснює архівацію файлів на жорсткому диску.
Виконання роботи
:
Завдання 1.
Створити командний файл, що забезпечує посторінковий вивід на екран дисплею якого-небудь текстового файлу, специфікація якого задана в якості параметру для командного файлу. Після демонстрації роботи створеного командного файлу модифікуйте його таким чином, щоб з його допомогою можна було продивлятись будь-які текстові файл, імена яких будуть задані в якості параметрів.
C:> Command con Fan. bat
В цьому файлі вводимо такий текст:
C:>
Виконання роботи:
Завдання 1.
Створити командний файл, що забезпечує посторінковий вивід на екран дисплею якого-небудь текстового файлу, специфікація якого задана в якості параметру для командного файлу. Після демонстрації роботи створеного командного файлу модифікуйте його таким чином, щоб з його допомогою можна було продивлятись будь-які текстові файл, імена яких будуть задані в якості параметрів.
C:> copy con Ofis.BAT
C:>
Type Nick.txt/p
^Z
Модифікуємо цей файл
edit Nick.txt
C:>
Type *.txt/p
^Z
Завдання 2.
Створити командний файл, що забезпечує посторінкове відображення на екрані дисплею декількох текстових файлів.
C:> copy con Ivan.BAT
C:>
Type a???n.txt/p
^Z
Завдання 3.
Створити командний файл, що забезпечує посторінковий перегляд вмісту директорій (лістингів) на екрані дисплею, імена яких задаються в якості параметрів для командного файлу або вводяться з клавіатури по запиту що видається командним файлом.
C:> copy con Lviv.BAT
C:>
dir Yo.txt/p
^Z
Завдання
4
.
Створити командний файл, що забезпечує видалення файлів з розширенням. ВАT. Після демонстрації роботи створеного командного файлу модифікуйте його таким чином, щоб з його допомогою можна було видаляти файли з розширенням, що задаються в якості параметру.
C:> copy con Live.BAT
C:>
*. BAT
^Z
Модифікуємо цей файл
edit Live.txt
C:>
del *.txt/p
^Z
Завдання 5.
Створити командний файл, що забезпечує використання якого-небудь текстового редактора для перегляду текстових файлів.
C:> copy con Nick.BAT
C:>
edit *.txt
^Z
Завдання 6
Створити командний файл, що забезпечує перейменування файлів, імена яких задаються в якості параметрів, а перехід від одного файлу до іншого здійснюється командою Shift.
C:> copyconNick.BAT
C:>
Ren T*o.txt Ten.txt
^Z
КОНТРОЛЬНІ ПИТАННЯ
1. Командні файли і файли конфігурації МSDOS , їхнє призначення.
2. Засоби передачі параметрів в командні файли. Позиційні параметри, що замінюються в командних файлах.
3. Як вставити коментар в командний файл? Видавання повідомлень.
4. Завдання циклів і переходів. Команда SHIFT.
5. Звернення з командного файлу до іншого командного файлу.
6. Зупинення і поновлення виконання командного файлу.
7. Вихід з циклу або припинення виконання командного файлу
8. Як можна уникнути виводу echo - команди на екран?
Висновок:
На цій лабораторній роботі я вивчив системи команд командного процесора МSDOS і засобів створення пакетних командних файлів.
|