function ParamCmd(Cmd: string; var Value: string): boolean;
var i, p, p1: integer;
s: string;
procedure Del(var s: string);
begin
if (s<>'') and (s[1] in ['\', '/', '-']) then
Delete(s, 1, 1);
end;
begin
Result:=false;
Del(Cmd);
Cmd:=AnsiLowerCase(Cmd);
for i:=1 to ParamCount do
begin
s:=ParamStr(i);
Del(s);
p:=Pos(':', s);
p1:=Pos('=', s);
if (p=0) or (p1>0) and (p>p1) then
p:=p1;
if p>0 then
begin
Value:=Copy(s, p+1, Length(s));
s:=Copy(s, 1, p-1);
end else
Value:='';
if AnsiLowerCase(s)=Cmd then
begin
Result:=true;
Exit;
end;
Value:='';
end;
end;
где:
Cmd – проверяемый параметр командной строки;
Value – значение данного параметра.
Для проверки нижеуказанных примеров необходимо созданный Вами файл .exe
(например, Project1.exe) разместить в корневой папке C:\ (полное имя
файла – C:\Project1.exe). Далее запустить командную строку cmd.exe
и привести в исполнение следующую команду:
C:\Project1.exe help /ToV -mode:arr \user=admin file:"C:\Program Files\My file.doc" -exit
Следующий способ проверки примеров состоит в указании конкретных параметров командной
строки в самой среде Delphi. Для этого необходимо выбрать пункт меню "Run"
→ "Parameters". В появившемся диалоговом окне в поле ввода
"Parameters" прописываем параметры командной строки без имени файла
.exe:
help /ToV -mode:arr \user=admin file:"C:\Program Files\My file.doc" -exit
Например,
ParamCmd('/help', Value) выведет
true,
Value станет пустой строкой;
ParamCmd('helper', Value) выведет
false,
Value станет пустой строкой;
ParamCmd('tOv', Value) выведет
true,
Value станет пустой строкой;
ParamCmd('-user', Value) выведет
true,
Value = 'admin';
ParamCmd('File', Value) выведет
true,
Value = 'C:\Program Files\My
file.doc' (обратите внимание на отсутствие двойных кавычек);
ParamCmd('exit=3', Value) выведет
false,
Value станет пустой строкой.
|