- •Инструменты автоматизации в операционной системе windows Оболочка командной строки ос Windows
- •Общие сведения о командной строке. Язык интерпретатора Cmd.Exe
- •Командные файлы
- •Общие сведения
- •Проверка значения переменной
- •Проверка условия
- •Проверка существования заданного файла
- •Проверка наличия переменной среды
- •Проверка кода завершения предыдущей команды
- •Работа с переменными среды Windows
Работа с переменными среды Windows
Цель работы: ознакомится с переменными окружения среды, получить навыки работы с системными переменными операционной системы, создания собственных переменных и работы с ними как со строками.
Задание 4 Создание файла с заданным именем (дополнительное)
Написать командный файл, который осуществляет процесс создания на заданном диске компьютера файла с названием и содержанием соответствующим варианту. Имя файла имеет следующий шаблон: XX_YY.TXT,
где XX – переменная, которая запрашивается у пользователя при выполнении командного файла (любое значение);
где YY – переменная, получаемая в результате преобразования в командном файле значений системных переменных среды (см. приложение) в соответствии с вариантом задания.
Содержание файла так же формируется из значений системных переменных среды.
Примечание: если переменная YY конструируется из разных символов одной и той же или разных переменных, то они следуют без пробелов. Например, значение YY соответствует дню и году переменной DATE. При DATE =08.04.2010 значение YY будет равно 082010.
Таблица 2- Исходные данные к заданию 3
№ Варианта |
Значение YY |
Содержимое файла |
В1 |
Текущий год |
Расположение профиля All Users |
В2 |
Текущий месяц |
Имя текущего каталога |
В3 |
Текущий день |
Имя компьютера |
В4 |
Текущий час |
Текущая дата |
В5 |
Текущая минута |
Код уровня ошибки последней программы |
В6 |
3 первых символа переменой COMPUTERNAME |
Расположение каталога, в котором программы хранят данные по умолчанию |
В7 |
3 первых символов переменой USERNAME |
Параметры командной строки, которые использовались для запуска текущего экземпляра программы CMD.EXE |
В8 |
3 первых символа системной переменой OS |
Номер версии текущего расширения командного процессора |
В9 |
2 последних символа системной переменой OS |
Путь к исполняемому файлу командного интерпретатора |
В10 |
2 последних символа переменой COMPUTERNAME |
Полный путь к домашнему каталогу пользователя |
В11 |
2 последних символа переменой USERNAME |
Версия операционной системы |
В12 |
Архитектура процессора |
День и год переменной DATE |
В13 |
День и месяц переменной DATE |
Список расширений, которые распознаются ОС, как расширения исполняемых файлов |
В14 |
День и год переменной DATE |
Архитектура процессора |
В15 |
Месяц переменной DATE |
Описание процессора |
В16 |
Месяц и год переменной DATE |
Номер модели процессора, установленного в компьютере |
В17 |
Часы и минуты системной переменной TIME |
Номер версии модели процессора |
В18 |
Часы и день системных переменных TIME и DATE |
Параметры приглашения командной строки для текущего интерпретатора |
В19 |
Минуты и день системных переменных TIME и DATE |
Случайное десятичное число от 0 до 32767 |
В20 |
Часы и год системных переменных TIME и DATE |
Буква диска, на котором расположен корневой каталог Windows |
В21 |
Минуты и год системных переменных TIME и DATE |
Путь к временным каталогам, принятым по умолчанию |
В22 |
Часы и месяц системных переменных TIME и DATE |
Архитектура процессора |
В23 |
Минуты и месяц системных переменных TIME и DATE |
Текущее время |
В25 |
Каталог системного реестра (системная переменная SystemRoot) |
Имя домена, в котором хранится учетная запись пользователя |
В26 |
Каталог ОС (системная переменная WinDir) |
Имя пользователя, который зарегистрирован в системе в текущий момент времени |
В27 |
Версия ОС Windows (системная переменная OS) |
Путь к профилю текущего пользователя |
В28 |
Параметры приглашения командной строки для текущего интерпретатора (системная переменная PROMPT) |
Путь к каталогу операционной системы |
В29 |
Имя пользователя (системная переменная USERNAME) |
Часы и день системных переменных TIME и DATE |
В30 |
Папка хранения временных файлов (системная переменная TEMP) |
Путь поиска исполняемых файлов |
Рекомендации к выполнению задания
1. Ознакомиться с теоретическим материалом;
2. Задание выполняется на локальном компьютере, в оболочке командной строки, на диске указанном преподавателем (если задание выполняется в компьютерном классе). Командный файл создаётся в соответствии с вариантом задания с именем «Lab4-Группа-Фамилия.bat». Для корректного отображения русских шрифтов рекомендуется использовать текстовый редактор с поддержкой ввода в кодировке 866 (например Notepad2).
3. Структура программы:
блок описания – фамилия и имя студента, номер группы, название лабораторной работы;
запрос данных у пользователя – имя каталога (или папки) в котором будет создаваться файл, часть имени файла - XX;
проверка введенных данных - существование каталога (если не существует, то его надо создать);
подготовка переменной значение которой соответствует требуемому имени файла;
создание файла с заданным именем и занесение в него информации (если файл с таким именем уже существует, то его надо переписать);
выдача результатов – содержание созданного файла;
4. Для отчёта представить структуру задаваемого в соответствии с вариантом имени файла, его содержимое, программу с комментариями, электронный вариант командного файла.
Определение значения переменной
Внутри командных файлов можно работать с переменными, которые называются переменными среды Windows (или переменными окружения), каждая из которых хранится в оперативной памяти, имеет свое уникальное имя, а ее значением является строка. Стандартные (или системные) переменные автоматически инициализируются в процессе загрузки операционной системы. Такими переменными являются:
WINDIR - определяет расположение каталога Windows;
TEMP - определяет путь к каталогу для хранения временных файлов Windows;
PATH - определяет путь поиска, то есть список каталогов, в которых система должна искать выполняемые файлы или файлы совместного доступа (например, динамические библиотеки);
COMPUTERNAME – имя компьютера
OS – версия операционной системы
SYSTEMROOT - определяет путь к каталогу для хранения системного реестра и др. системные переменные.
Чтобы просмотреть список системных переменных среды Windows надо в командной строке набрать команду Set.
Рисунок 2- Результат выполнения команды SET
Создание (или объявление) собственных переменных, которые используются в командных файлах, осуществляется с помощью команды:
Set <имя переменной>=<значение переменной>
При этом ее значением является строка. Например:
C:\>SET VAR=MYDOC |
Переменной VAR присваивается значение «MYDOC» |
C:\>ECHO %VAR% C:\>MYDOC
|
Для получения значения определенной ранее переменной (или системной переменной) нужно имя этой переменной заключить в символы %. |
C:\>SET VAR= |
Удаление переменной |
Операции с переменными как с числами
При включенной расширенной обработке команд (этот режим в Windows XP используется по умолчанию) имеется возможность рассматривать значения переменных среды как числа и производить с ними арифметические вычисления. Для этого используется команда SET с ключом /A.
SET /A выражение
Приведём два примера. В первом примере задаётся символьное значение переменной, во втором – числовое. Сравните полученные результаты:
C:\>SET M=1 C:\>SET S= %M%+1 C:\>SET S C:\>S=1+1 |
Переменной M присваивается значение «1» Переменной S присваивается значение «%M%+1» Вывод на экран значения переменной S Значение переменной S- «1+1» |
C:\>SET M=1 C:\>SET /A S= %M%+1 2 C:\>SET S C:\>S=2
|
Переменной M присваивается число 1 Переменной S присваивается значение %M%+1, т.е. 2 Вывод на экран значения переменной S Значение переменной S- 2 |
Для организации счётчика можно использовать следующую конструкцию оператора SET:
SET /A S+= 1
Ввод значений пользователем
Для этих целей служит ключ /P команды SET:
SET /P variable=prompt
Например:
SET /P SBORDANNIX=Вы хотите разослать данные на ПК или собрать информацию на сервер? [1 - собрать] [2 - разослать] :
IF %SBORDANNIX%==1 GOTO SBORKA
Приглашение prompt может быть пустым.
Преобразования переменных как строк
С переменными в командных файлах можно производить следующие манипуляции.
Операция конкатенации (склеивания). Для этого нужно в команде SET просто написать рядом значения соединяемых переменных. Например:
SET A=РАЗ SET B=ДВА SET C=%A%%B% |
После выполнения в файле этих команд значением переменной C будет являться строка «РАЗДВА» |
Выделять подстроки с помощью конструкции:
%имя_переменной:~n1,n2%,
где число n1 определяет смещение (количество пропускаемых символов) от начала (если n1 положительно) или от конца (если n1 отрицательно) соответствующей переменной среды, а число n2 – количество выделяемых символов (если n2 положительно) или количество последних символов в переменной, которые не войдут в выделяемую подстроку (если n2 отрицательно). Если указан только один отрицательный параметр -n, то будут извлечены последние n символов. Например:
SET DD1=%DATE:~0,2% SET DD2=%DATE:~0,-8%
|
Если в переменной хранится строка "21.09.2007", то после выполнения следующих команд новые переменные будут иметь такие значения: %DD1%=21, %DD2%=21 |
Выполнять процедуру замены подстрок с помощью конструкции:
%имя_переменной:s1=s2%
В результате будет возвращена строка, в которой каждое вхождение подстроки s1 в соответствующей переменной среды заменено на s2. Например,
SET A=123456 SET B=%A:23=99% |
После выполнения команд в переменной B будет храниться строка "199456" |
SET A=123456 SET B=%A:23=%
|
Если параметр S2 не указан, то подстрока S1 будет удалена из выводимой строки, т.е. после выполнения команды в переменной B будет храниться строка "1456" |
Приведём наиболее распространённые примеры применения команды SET в командных файлах:
SET GROUP=MYGROUP
|
Присвоение переменной %group% значения «mygroup» |
ECHO %GROUP% |
Вывод в консоль строки «mygroup» |
MD "%GROUP%" |
Создание папки «mygroup» |
SET DIG=42 |
Присвоение переменной %dig% значения «42» |
REN "%GROUP%" "%DIG%" |
Переименование папки «mygroup» в «42» |
SET GROUP=%GROUP%%DIG%
|
Присвоение переменной %group% значения «mygroup42» |
SET PREFIX=%GROUP:~0,2%
|
Присвоение переменной %prefix% значения «my» |
SET REPLACED=%GROUP:42=84%
|
Присвоение переменной %replaced% значения «mygroup84» |
SET INS=%GROUP:~0,-4%__%GROUP:~-4%
|
Присвоение переменной %ins% значения «mygro__up42» |
SET GROUP= |
Удаление переменной %group% |
SET /p GROUP=Введите групу:
|
Вывод сообщения «Введите групу: » и сохранение введенного пользователем значения в переменную %group% |
IF EXIST "%GROUP%" ECHO файл существует |
Проверка существования файла с названием, которое ввел пользователь |
Литература
Богумирский Б.С. Руководство пользователя ПЭВМ: В 2-х ч. Ч. 1. – Санкт-Петербург. Ассоциация OILCO, 1992. – 357 с.: ил.
Уильям Р. Станек Командная строка Microsoft Windows. Справочник администратора.: Пер. с англ. — М.: Иэдательско-торговый дом «Русская Редакция», 2004. — 480 с: ил.
http://www.intuit.ru/department/os/compromtwin/1/ Командная строка и сценарии Windows
http://windata.ru/windows-xp/faq-xp/spisok-peremennyx-sredy-v-windows/ Cписок переменных среды в Windows
http://debugger.ru/articles/windatetime Преобразование текущих дат и времени
http://www.prodos.narod.ru/page_all/alfavit/s_alf.htm Все команды по алфавиту
http://www.osp.ru/text/print/302/13001346.html Управляем переменными среды
ПРИЛОЖЕНИЕ А
Команды командной строки Windows
Команда |
Действие |
CLS |
Команда очистки экрана |
<имя дисковода>: |
Команда смены текущего дисковода |
DIR |
Просмотр содержимого текущего каталога (directory) |
С > DIR A: |
Просмотр файлов на дисководе А при текущем диске С |
CD |
Изменение текущего каталога (change directory) |
CD .. |
Переход на уровень выше |
CD\ |
Возвращение в корневой каталог диска |
MD [путь] <имя каталога> |
Создание каталога (make directory) |
RD [путь] <имя каталога> |
Уничтожение каталога (remove directory) Удалить можно только пустой каталог. Кроме того, нельзя удалить текущий каталог |
|
Удаления каталога со всеми содержащимися в нем файлами и/или подкаталогами |
COPY [путь] <имя файла> [путь] <имя каталога> |
Копирование файлов |
COPY *.TXT C:\FRUIT |
Пример копирования нескольких файлов с использование подстановочного символа |
copy *.lst + *.ref *.prn |
Пример конкатенации(объединения) файлов с помощью команды Сору |
COPY CON <имя файла> |
Создание текстовых файлов. Для завершения ввода информации нажать клавишу F6+ENTER |
TYPE <имя файла> |
Отображение содержимого текстового файла. Файлы с атрибутами H и S команде не доступны |
REN [путь] <имя-файла> <имя-файла> |
Переименование файлов (rename) |
DEL [путь] <имя-файла> |
Удаление файлов (delete) |
del *.bak |
удаление всех файлов с расширением .bak из текущего каталога |
VOL [диск:] |
Команда выдачи метки диска на экран |
LABEL [диск:][метка\ |
Создание, изменение, уничтожение и отображение метки диска (внешняя команда) |
CHKDSK [диск:] [/F] [/V] |
Проверка целостности файловой структуры на диске (check disk) (внешняя команда) |
FORMAT дисковод: [режимы] |
Инициализация (форматирование) диска (внешняя команда) |
SYS <диск> |
Перенос файлов ОС на указанный диск (внешняя команда) |
1 Диск 1 – логический диск D
2 Каталог А – КАТ
3 Расширение – PCE
4 Диск 2 – логический диск E
5 Каталог B - КАТ2
6 Файл С - Aidsvir.txt
