В листинге 7.4 приводится полный текст сценария ArgMenu.wsf.

Листинг 7.4. Обработка параметров командной строки сценария для работы с записной книжкой

<job id='ArgMenu'>

 <runtime>

  <description>

  Сценарий для работы с телефонной книжкой

  </description>

  <named name='L' helpstring='Просмотр содержимого книжки' type='simple' required='false'/>

  <named name='F' helpstring='Поиск по фамилии' type='simple' required='false'/>

  <named name='A' helpstring='Добавление записи' type='simple' required='false'/>

  <named name='D' helpstring='Удаление записи' type='simple' required='false'/>

 </runtime>

 <script language='JScript'>

  var WshShell;

  WshShell=WScript.CreateObject('WScript.Shell');

  if ((WScript.Arguments.Named.Exists('L')) ||

   (WScript.Arguments.Named.Exists('l'))) {

   WshShell.Run('wscript PhoneBook.wsf //Job:SortName');

   WScript.Quit();

  }

  if ((WScript.Arguments.Named.Exists('F')) ||

   (WScript.Arguments.Named.Exists('f'))) {

   WshShell.Run('wscript PhoneBook.wsf //Job:FindName');

   WScript.Quit();

  }

  if ((WScript.Arguments.Named.Exists('A')) ||

   (WScript.Arguments.Named.Exists('a'))) {

   WshShell.Run('wscript PhoneBook.wsf //Job:AddRec');

   WScript.Quit();

  }

  if ((WScript.Arguments.Named.Exists('D')) ||

   (WScript.Arguments.Named.Exists('d'))) {

   WshShell.Run('wscript PhoneBook.wsf //Job:DelRec');

   WScript.Quit();

  }

  //Ни один из нужных аргументов не был указан, выводим

  //описание параметров

  WScript.Arguments.ShowUsage();

 </script>

</job>

Теперь, если понадобится ввести дополнительную функцию при работе с записной книжкой (например, поиск по номеру телефона), нужно будет в файл PhoneBook.wsf добавить задание с новым идентификатором, а в файл ArgMenu.wsf — обработку нового параметра командной строки.

Организация диалога с помощью кнопочного меню

Вторым вариантом организации диалога, который мы рассмотрим, является кнопочное (командное) меню. Принцип его работы в нашем примере остается практически тем же, что и при описанной выше обработке аргументов командной строки — пользователь должен в диалоговом окне ввести символ, соответствующий одной из описанных в этом окне команд (рис. 7.2). Этот символ анализируется в сценарии, и в зависимости от его значения вызывается то или иное задание из файла PhoneBook.wsf.

Рис. 7.2. Кнопочное меню для работы с записной книжкой

Диалоговое окно, показанное на рис. 7.2, выводится в цикле while, в котором с помощью оператора switch анализируется введенный пользователем символ. Выход из цикла совершается, если введенный символ совпадает с 'q' или 'Q'.

Текст сценария ComMenu.wsf, реализующего кнопочное меню для работы с записной книжкой, приводится в листинге 7.5.

Листинг 7.5. Командное меню для работы с записной книжкой

<job id='ComMenu'>

<script language='VBScript' src='WSHInputBox.vbs'/>

<script language='JScript'>

 var WshShell,SMenu,Res;

 WshShell=WScript.CreateObject('WScript.Shell');

 SMenu='[L] - Просмотр содержимого книжки ';

 SMenu+='[F] - Поиск по фамилии ';

 SMenu+='[A] - Добавление записи ';

 SMenu+='[D] - Удаление записи ';

 SMenu+='[Q] - Выход из сценария ';

 SMenu+=' Команда:';

 Res='';

 while ((Res!='q') && (Res!='Q')) {

  Res=WSHInputBox(SMenu,'Записная книжка');

  switch (Res) {

  case 'L': {

   WshShell.Run('wscript PhoneBook.wsf //Job:SortName',1,true);

   break;

  }

  case 'l': {

   WshShell.Run('wscript PhoneBook.wsf //Job:SortName',1,true);

   break;

  }

  case 'F': {

   WshShell.Run('wscript PhoneBook.wsf //Job:FindName',1,true);

   break;

  }

  case 'f': {

   WshShell.Run('wscript PhoneBook.wsf //Job:FindName',1,true);

   break;

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату