Министерство образования и науки РФ
Новосибирский Государственный Технический Университет
Кафедра экономической информатики
Расчетно-графическая работа
по дисциплине: «Операционные системы, среды и оболочки»
Вариант №13
Факультет: Бизнеса
Группа: ФБИ-5
Выполнил:
Проверил: Сваровский С.Г.,
Ходусов Н.В.
Новосибирск
2007
MD (MKDIR)
/? - oтображение справки.
md2 [Диск:]путь - создаст папку, если она не существует, в указанной дипектории и все каталоги по пути при том же условии. Без указания диска дерево каталогов будет создано в текущей папке.
md2 имя имя2 имя3 – создаст папки с указанными именами в текущем каталоге.
md2 /? – выдаст справку по синтаксису команды.
md2 – введенная без параметров выдаст сообщение о синтаксической ошибке.
crd(s:string):boolean
Функция crd(s:string):boolean после вызова отсекает последний элемент пути, переданного с каждым из параметров, и передает (возможную) оставшуюся часть в следующую копию crd(s:string):boolean, которую сама вызывает. В (возможно) созданном последующими копиями дереве каталогов она создает папку с переданным параметром именем. В случае успеха она возвращает в главный модуль True, неудачи – False.
Блок-схемы алгоритма:
Текст программы:
program md2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var i:byte;
function crd(s:string):boolean;
var z:boolean;
i:word;
begin
if s[length(s)]='\' then delete(s,length(s),1);
z:=false;
for i:=1 to length(s) do if s[i]='\' then z:=true;
if z then crd(extractfilepath(s));
result:=CreateDir(s)
end;
begin
if paramcount=0 then Writeln('Oshibka v sintaxise komandi.') else
if paramstr(1)='/?' then
begin
Writeln('Sozdaniye kataloga.');
Writeln;
Writeln('MKDIR [disc:]put');
Writeln('MD [disc:]put');
Writeln;
Writeln('Izmenenie komandi MKDIR pri vkluchenii rasshirennoy obrabotki komand:');
Writeln;
Writeln('Komanda MKDIR sozdaet pri neobhodimosti vse promejutochnie katalogi v puti.');
Writeln('Naprimer, esli \a ne susshestvuet, to:');
Writeln;
Writeln(' mkdir \a\b\c\d');
Writeln;
Writeln('privodit k tomu je rezultatu, chto i:');
Writeln;
Writeln('mkdir \a');
Writeln('chdir \a');
Writeln('mkdir b');
Writeln('chdir b');
Writeln('mkdir c');
Writeln('chdir c');
Writeln('mkdir d');
Writeln;
Writeln('Pri otkluchenii rasshirennoy obrabotki komand ispolzuetsya tolko vtoroy variant.');
end else
for i:=1 to paramcount do
if DirectoryExists(ParamStr(i)) then WriteLn('Podpapka ili fayl'+' '+ParamStr(i)+' '+'uje sushestvuet.')
else begin if not crd(ParamStr(i)) then WriteLn('Ne udalos sozdat'+' '+ParamStr(i)) end
end.
Результат работы программы:
Команда: md2
Реакция:
Oshibka v sintaxise komandi.
C:\>
Команда: md2 c:\temp\a b c
Реакция:
C:\>md2 temp
C:\>md2 c:\temp\a b c
C:\>
Команда: md2 c:\temp\a
Реакция:
C:\>md2 c:\temp\a
Podpapka ili fayl c:\temp\a uje sushestvuet.
C:\>
Команда: md2 /?
Реакция:
C:\>md2 /?
Sozdaniye kataloga.
MKDIR [disc:]put
MD [disc:]put
Izmenenie komandi MKDIR pri vkluchenii rasshirennoy obrabotki komand:
Komanda MKDIR sozdaet pri neobhodimosti vse promejutochnie katalogi v puti.
Naprimer, esli \a ne susshestvuet, to:
mkdir \a\b\c\d
privodit k tomu je rezultatu, chto i:
mkdir \a
chdir \a
mkdir b
chdir b
mkdir c
chdir c
mkdir d
Pri otkluchenii rasshirennoy obrabotki komand ispolzuetsya tolko vtoroy variant.
C:\>
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.