Написание сценариев на основе служб терминалов (часть 10)

Опубликовано: 23 Апреля, 2023



  • Написание сценариев на основе служб терминалов (часть 1)
  • Написание сценариев на основе служб терминалов (часть 2)
  • Написание сценариев на основе служб терминалов (часть 3)
  • Написание сценариев на основе служб терминалов (часть 4)
  • Написание сценариев на основе служб терминалов (часть 5)
  • Написание сценариев на основе служб терминалов (часть 6)
  • Написание сценариев на основе служб терминалов (часть 7)
  • Написание сценариев на основе служб терминалов (часть 8)
  • Написание сценариев на основе служб терминалов (часть 9)
  • Написание сценариев на основе служб терминалов (часть 11)
  • Написание сценариев на основе служб терминалов (часть 12)
  • Написание сценариев на основе служб терминалов (часть 13)
  • Написание сценариев на основе служб терминалов (часть 14)

В предыдущей статье этой серии мы познакомили вас с созданием простого меню. Это меню не имело абсолютно никакого отношения к службам терминала, но при его создании я объяснил несколько важных концепций. Теперь, когда вы знаете, как работают меню, я хочу адаптировать меню для более конкретной цели терминальной службы. Как вы помните, в части 8 этой серии я показал вам, как выполнить команду Query Users и записать результаты в файл журнала с определенной датой. В этой статье я хочу взять концепции, которые вы узнали в частях 8 и 9, и построить на их основе сценарий. Для демонстрации мы создадим простой сценарий, который позволит вам создать файл журнала, просмотреть определенный файл журнала или распечатать файл журнала.


Адаптация меню


Как вы, возможно, помните, меню, которое мы создали в части 9, было простым меню, в котором вас просили ввести букву, соответствующую вашей любимой машине. Как только вы сделаете выбор, меню выполнит подпрограмму, которая просто скажет вам, какую машину вы выбрали. Хотя этот тип меню чрезвычайно упрощен, он удобен тем, что мы можем легко адаптировать его для работы с командой Query Users.


Для справки, вот сценарий меню, который мы создали в Части 9:





Объединить эти два скрипта очень просто. Первое, что я сделал, это избавился от переменной с именем Car и заменил ее чем-то более подходящим. Теперь я вызываю переменную Menu. Я также переименовал подпрограммы из Lamborghini, Ferrari и Porsche в Create, View и Print. Конечно, мне также пришлось пересмотреть вызовы подпрограмм, чтобы отразить новые имена подпрограмм. После этого я изменил текст меню, чтобы отобразить новое намерение нашего меню. Наконец, я вставил содержимое скрипта Query Users в одну из подпрограмм. После этого скрипт выглядит так:



Так как скрипт прямо сейчас, мы можем выбрать вариант A, и скрипт создаст файл журнала для конкретной даты, содержащий результаты команды Query User. Однако на данный момент параметры просмотра и печати содержимого файла журнала в основном пусты, потому что я уже научил вас использовать необходимые команды.


Просмотр файла журнала


Теперь, когда мы создали подпрограмму, создающую файл журнала, я хочу показать вам, как создать подпрограмму, позволяющую просматривать содержимое файла журнала. Если бы мы хотели просто просмотреть файл журнала, который был создан сегодня, то создать подпрограмму было бы просто. Подпрограмма будет выглядеть так:



Приведенная выше подпрограмма довольно проста и понятна, но в ней используется пара команд, которые вы еще не выучили. В таком случае давайте пройдемся по строчке. Первая строка просто объявляет подпрограмму, а вторая строка является просто заполнителем, который печатает слова, которые вы выбрали для просмотра отчета.


Третья строка подпрограммы идентична строке сценария из части 8 этой серии статей. Эта строка просто берет месяц, день и год и объединяет их в переменную среды с именем %datefile%. Если вы хотите узнать больше о том, как работает эта линия, в Части 8 есть полное объяснение.


Предпоследняя строка файла содержит обе новые команды. Команда Type указывает Windows отображать содержимое файла. В этом случае у нас нет конкретного имени файла для отображения, но у нас есть переменная среды, которая, как мы знаем, использовалась как часть имени файла. Мы также знаем, что файлы журналов, создаваемые нашим скриптом, представляют собой простые текстовые файлы с расширением.LOG. Поэтому, если мы введем команду Type %datefile%.log, мы укажем сценарию отобразить содержимое файла журнала, который был создан сегодня.


Сразу после имени файла стоит символ вертикальной черты (I) и слово «Дополнительно». Причина, по которой я включил это как часть команды, заключается в том, что иногда файл журнала может быть слишком длинным, чтобы целиком поместиться на экране. Обычно, когда это происходит, содержимое файла просто прокручивается на экране, пока Windows не дойдет до конца файла. Когда вы добавляете команду «больше» к команде типа, она сообщает Windows делать паузу после каждого экрана, полного информации, чтобы у вас было время прочитать информацию. Windows не будет переходить к следующему полному экрану, пока вы не нажмете клавишу.


Последняя строка подпрограммы — это команда goto: EOF. Как я уже говорил ранее, это просто сообщает Windows, что подпрограмма достигла конца.


Вывод


В этой статье я начал показывать вам, как адаптировать наши меню к чему-то специфичному для службы терминала. В предыдущем разделе я показал вам, как использовать пункт меню для отображения содержимого файла журнала за сегодняшний день. Конечно, иногда вы можете захотеть просмотреть файл журнала за другую дату. В следующей статье этой серии я покажу вам, как это сделать. Я также покажу вам, как создать подпрограмму, которую вы можете использовать для печати содержимого файла журнала.




  • Написание сценариев на основе служб терминалов (часть 1)
  • Написание сценариев на основе служб терминалов (часть 2)
  • Написание сценариев на основе служб терминалов (часть 3)
  • Написание сценариев на основе служб терминалов (часть 4)
  • Написание сценариев на основе служб терминалов (часть 5)
  • Написание сценариев на основе служб терминалов (часть 6)
  • Написание сценариев на основе служб терминалов (часть 7)
  • Написание сценариев на основе служб терминалов (часть 8)
  • Написание сценариев на основе служб терминалов (часть 9)
  • Написание сценариев на основе служб терминалов (часть 11)
  • Написание сценариев на основе служб терминалов (часть 12)
  • Написание сценариев на основе служб терминалов (часть 13)
  • Написание сценариев на основе служб терминалов (часть 14)