- •1. Цель курсовой работы
- •2. Командный процессор ос ms Windows cmd
- •2.1. Оболочка (интерпретатор) командной строки command.Com/cmd.Exe
- •Листинг 1. Процедура инициализации
- •2.3. Структура команд. Параметры и ключи. Вывод справочной информации
- •2.4. Команды
- •2.4.4. Команды Date и Time
- •2.4.7.2. Команда cd
- •2.4.7.3. Команда dir
- •2.4.7.4. Команды mkdir
- •2.4.7.5. Команда del или erase
- •3. Назначение ключей и параметров, описание команд
- •3.1. Команда type
- •Листинг 2. Процедура type
- •3.2. Команда time
- •Листинг 3. Процедура отображения и установки времени
- •3.3. Команда date
- •Листинг 4. Отображение и установка системного времени
- •3.4. Команда mkdir
- •Листинг 5. Процедура mkdir
- •3.5. Команда rd
- •Листинг 6. Процедура rd
- •3.6. Команда cd
- •3.7. Команда attrib
- •Листинг 7. ПроцедураAttrib
- •3.8. Команда cls
- •Листинг 8. Процедура cls
- •3.9. Команда sort
- •Листинг 9. Процедура sort
- •3.10. Команда echo
- •Листинг 10. Процедура echo
- •3.11. Команда del|erase
- •Листинг 11. Процедура del
- •3.12. Команда dir
- •Листинг 12. ПроцедураDir
- •3.13. Команда invertcolor
- •Листинг 13. Процедура invertcolor
- •3.14. Разбиение на лексемы, синтаксический анализ, регулярные выражения
- •Листинг 14. Проверка на соответстиве команд
- •3.15. Процедуры упорядочивания массива (сортировка)
- •3.17. Русификация вывода командного процессора
- •4. Примеры выполнения работы команд
- •4.1. Команда dir
- •4.2. Команда attrib
- •4.3. Команда date и time
- •4.4. Команда type и sort
- •4.5. Команда mkdir, rd, cd
- •4.7. Команда cls и echo
- •4.8. Команда del | erase
- •5. Литература
Листинг 2. Процедура type
3.2. Команда time
Для получения текущей даты и текущего времени используются процедуры модуля SysUtils Now().
Алгоритм работы процедуры:
1. Если есть ключ справки выводим ее, возвращаемся на начало.
2. Запрашиваем текущее время через функцию.
3. Выводим сообщение о установке нового времени.
4. Если да, то просим ввести новое время.
5. Если есть доступ и права то устанавливаем новое системное время.
6. Возвращаемся на начало.
Пример использования процедур приведен ниже:
if UpperCase(rg.Match[0]) = 'TIME ' then
begin
rg.Expression := '\/\?';
rg.Exec(tl);
if rg.Match[0] = '/?' then
begin
MyWriteln('TIME'
+#13#10+'Выводит текущее системное время в формате H:MM:SS');
goto g1;
end
else
begin
MyWriteln(FormatDateTime('HH:MM:SS', NOW));
MyWriteln('Установить новую дату Y/N');
Readln;
Readln(tl);
if UpperCase(Trim(tl)) = 'Y'
then
begin
MyWriteln('Укажите новое системное время');
Read(tl);
try
if SetTime(now+StrToDateTime(tl))
then
begin
MyWriteln('Новое время успешно установлено');
end
else
begin
MyWriteln('Не удалось установить новое время');
end;
except
MyWriteln('Не удалось установить новое время');
end;
end
else
begin
MyWriteln('Отмена команды. Для продолжения работы нажмите <ENTER>');
Read(tl);
MyWriteln('Перенаправление');
goto g1;
end;
end;
goto g1;
end;
Листинг 3. Процедура отображения и установки времени
3.3. Команда date
Для получения текущей даты и текущего времени используются процедуры модуля SysUtils Now().
Алгоритм работы процедуры:
1. Если есть ключ справки выводим ее, возвращаемся на начало.
2. Запрашиваем текущую дату через функцию.
3. Выводим сообщение о установке новой даты.
4. Если да, то просим ввести новую дату.
5. Если есть доступ и права то устанавливаем новую системную дату.
6. Возвращаемся на начало.
Пример использования процедур приведен ниже:
if UpperCase(rg.Match[0]) = 'DATE ' then
begin
rg.Expression := '\/\?';
rg.Exec(tl);
if rg.Match[0] = '/?' then
begin
MyWriteln('DATE'
+#13#10+'Выводит текущую системную дату в формате dd-mm-yyyy');
goto g1;
end
else
begin
MyWriteln(FormatDateTime('DD-MM-YYYY', NOW));
MyWriteln('Установить новую дату Y/N');
Readln;
Readln(tl);
if UpperCase(Trim(tl)) = 'Y'
then
begin
MyWriteln('Укажите новую системную дату');
Read(tl);
try
if SetTime(StrToDateTime(tl)+now)
then
begin
MyWriteln('Новая дата успешно установлена');
end
else
begin
MyWriteln('Не удалось установить новую дату');
end;
except
MyWriteln('Не удалось установить новую дату');
end;
end
else
begin
MyWriteln('Отмена команды. Для продолжения работы нажмите <ENTER>');
Read(tl);
MyWriteln('Перенаправление');
goto g1;
end;
end;
goto g1;
end;