- •Инструменты автоматизации в операционной системе 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/pGROUP=Введите групу:
|
Вывод сообщения «Введите групу: » и сохранение введенного пользователем значения в переменную %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 Управляем переменными среды
1Диск 1 – логический диск D
2Каталог А – КАТ
3Расширение –PCE
4Диск 2 – логический диск E
5КаталогB- КАТ2
6Файл С - Aidsvir.txt