Тип файла сценарий windows

Обновлено: 30.06.2024

A Файл скрипта Windows (WSF ) - это тип файла, используемый Microsoft Windows Script Host . Он позволяет смешивать языки сценариев JScript и VBScript в одном файле или другие языки сценариев, такие как Perl , Object REXX , Python или Kixtart , если он установлен пользователем. Эти типы сценариев также могут использоваться для связывания многих других внешних сценариев вместе с помощью параметра src в теге » или «

Изоляция ошибок

WSF может быть полезно для выявления ошибок. Его модульный характер не позволяет одной ссылке на скрипт мешать работе другой. Вот пример WSF с одним модулем, который выдает ошибку, а другой - нет:

Первый модуль скрипта выдаст ошибку «деление на ноль». Обычно это приводит к тому, что сценарий завершается на Windows Script Host , но этот модульный метод позволяет сценарию продолжить и выполнить второй модуль сценария.

Поддержка смешанного языка

Результат выглядит так, отсортированный по ASCII коду последовательность:

Отображение констант

Еще одна очень полезная функция WSF заключается в том, что оболочка XML может быть привязана к ссылке на объект или элементу управления, чтобы вы могли использовать константы вместо того, чтобы объявлять их. В обычных файлах VBScript и JScript вам необходимо будет объявить значение константы (за пределами тех, которые являются внутренними для Windows Script Host ), чтобы использовать константа. Пример этого показан ниже:

Если в документации по объекту упоминается только имя константы, а не значение константы, у вас не было бы возможности узнать значение без помощи интегрированной среды разработки , которая сообщила бы вам, чему они приравниваются. Используя объявление ссылки WSF, вы можете использовать константы без объявления их значений. В приведенном ниже примере перечислены значения нескольких общих констант в ADO (объекты данных ActiveX ) Recordset .

Запуск вышеуказанного сценария из файла с ".WSF" расширение, например, с именем "EnumerateConstantsADO.wsf" , даст результат, показанный ниже:

Кроме того, использование ссылки на объект для предоставления констант делает написание скрипта более похожим на написание на стандартном языке программирования. Фактически, содержимое примера сценария, написанного на VBScript, будет фактически компилироваться в программу Visual Basic и выполняться таким же образом, пока эта программа использует ту же ссылку на ADODB.

Windows Script File ( WSF ) является тип файла , используемый Microsoft Windows Script хоста . Он позволяет смешивать языки сценариев JScript и VBScript в одном файле или другие языки сценариев, такие как Perl , Object REXX , Python или Kixtart, если они установлены пользователем. Эти типы сценариев также могут использоваться для связывания многих других внешних сценариев вместе с помощью src параметра <script> тега аналогично HTML . Файлы сценариев Windows имеют расширение ".WSF" . WSF ссылается на каждый модуль сценария в очень простой иерархии XML, как показано ниже, придерживаясь этих стандартов за пределами <script> тегов. Буквальное использование " </script> " или " <script> " внутри <script> тегов и аналогичные проблемы можно решить с помощью CDATA , как показано в примерах.

Содержание

Изоляция ошибок

WSF может быть полезен для выявления ошибок. Его модульный характер не позволяет одной ссылке скрипта мешать другой. Вот пример WSF с одним модулем, который выдает ошибку, а другой - нет:

Первый модуль сценария выдаст ошибку «делить на ноль». Обычно это приводит к тому, что сценарий завершается на хосте сценариев Windows, но этот модульный метод позволяет сценарию продолжить и выполнить второй модуль сценария.

Поддержка смешанного языка

Результат выглядит так, отсортированный по последовательности кода ASCII :

Отображение констант

Еще одна очень полезная функция WSF заключается в том, что оболочка XML может быть привязана к ссылке на объект или элементу управления, поэтому вы можете использовать константы этого объекта вместо того, чтобы объявлять их. В обычных файлах VBScript и JScript вам придется объявить значение константы (за пределами тех, которые являются внутренними для Windows Script Host ), чтобы использовать константу. Пример этого показан ниже:

Если ваша документация по объекту ссылается только на имя константы, а не на значение константы, у вас не будет возможности узнать значение без помощи интегрированной среды разработки, которая скажет вам, чему они приравниваются. Используя объявление ссылки WSF, вы можете использовать константы без объявления их значений. В приведенном ниже примере перечислены значения нескольких общих констант в наборе записей ADO ( объекты данных ActiveX ) .

Запуск приведенного выше сценария из файла с ".WSF" расширением, например, с именем "EnumerateConstantsADO.wsf" , даст результат, показанный ниже:

Кроме того, использование ссылки на объект для предоставления констант делает написание сценария более похожим на написание на стандартном языке программирования. Фактически, содержимое примера сценария, написанного на VBScript, будет фактически компилироваться в программу Visual Basic и работать таким же образом, пока эта программа использует ту же ссылку на ADODB.

В этой статье я хотела бы пояснить, когда следует использовать механизмы сценариев, рассказать о некоторых базовых концепциях их составления, а также дать ряд практических советов (см. врезку "Советы по составлению сценариев" ). Кроме того, я представлю код на VBScript, с помощью которого решается некая общая задача, и прокомментирую его. Выбор пал на VBScript, поскольку Windows поддерживает этот язык. Windows поддерживает и JScript, но в предыдущих номерах журнала, как правило, использовался VBScript, так что есть смысл сохранять преемственность.

Почему именно сценарии?

Программирование сценария занимает больше времени, чем однократное выполнение задачи вручную, - даже если за дело берется опытный специалист по программированию на VBScript, который знает проблему досконально. Если же вы не профессионал, то написание и отладка сценария займет куда больше времени, чем использование графического интерфейса. Так зачем же тогда привлекать сценарий?

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

Если с помощью GUI решить задачу непросто, то, может быть, стоит обратиться к утилитам командной строки, которые поставляются вместе с операционной системой или в составе Resource Kit? Желательно использовать данные утилиты всегда, когда в этом есть смысл. Но в Windows 2000 набор программ с графическим интерфейсом не соответствует в точности набору утилит командной строки, и некоторые утилиты могут не удовлетворять в полном объеме решаемой задаче. Пакетные файлы не всегда хорошо справляются с ситуацией, когда входной поток данных должен быть изменен. Кроме того, утилиты командной строки и сценарии не являются взаимоисключающими методами. Можно написать сценарии, основанные на применении утилит командной строки и при этом свободные от недостатков последних.

Scripting Host

Прежде чем перейти к созданию сценария, поясню некоторые термины. Зная, что скрывается за словами scripting host, легче понять, как это может повлиять на проект сценария, допустимо ли будет использовать в сценарии выражения и т. п.

Windows поддерживает две машины сценариев: Microsoft Internet Explorer (IE) и Windows Script Host (WSH). Выбор той или иной машины влияет на используемые в сценарии возможности. Если применяется WSH, как чаще всего и бывает, то в сценарии могут использоваться объекты WSH, но не IE, и наоборот. Машина сценария не обязана понимать содержание всех мыслимых сценариев; воспринимается только сценарий, написанный на языке машины, и тот, который ею поддерживается. Для WSH и IE "понятными" являются языки VBScript и JScript.

Элементы сценария

Каждая строка сценария - это оператор, который сообщает компьютеру, что следует сделать. Исполняемые операторы обычно имеют форму типа "действие-объект": описываются само действие и тот объект, над которым действие совершается. Сценарий может содержать условия, при наличии которых указанные операторы должны быть выполнены. Хост сценария интерпретирует строки кода слева направо и сверху вниз, так что можно, например, получив некоторые данные в строке 10, использовать их в 30-й строке. Исключение составляют процедуры. Процедуры (функции и подпрограммы) - это набор операторов, которые выполняются только при явном обращении к ним. В данном случае процедура сразу же начинает выполняться независимо от того, из какого места кода было обращение.

Исполняемые части сценария называются операторами. Неисполняемая часть сценария называется комментарием и должна предваряться апострофом (') или ключевым словом Rem. Например:

Комментарий может занимать всю строчку целиком или быть частью строки, содержащей исполняемый код. Сценарий следует документировать, чтобы не участвующий в его написании человек (или даже незнакомый с лексикой его языка) смог легко понять, для чего сценарий предназначен. Иногда в целях отладки программы в начале исполняемой строки ставят признак комментария.

VBScript рассматривает перечисленные четыре типа данных как подмножество другого типа данных - variant, который может содержать данные любого вида. Таким образом, VBScript можно не сообщать, с данными какого типа вы работаете, но нужно иметь в виду, что некоторые задачи выполняются в Visual Basic (VB) и VBScript с описанными типами данных по-разному (правда, подобная ситуация может никогда и не встретиться). Группы однотипных данных называются массивами (array).

Для простоты работы с данными VBScript поддерживает еще два типа данных, не имеющих никакого начального значения (null-данные), которые можно присваивать переменным (variable) и константам (constant) сценария. Значения переменных в ходе выполнения программы могут меняться, но их имена при этом остаются прежними. Константы при выполнении сценария имеют только одно значение и изменяться не могут.

Передать данные в сценарий можно двумя способами. Во-первых, их в явном виде прописывают в теле программы. Например, ""\\bigserver\sharedfolder"" - обычное использование в сценарии строковых данных для обозначения пути. Другой способ - передать нужные данные во входном потоке в сценарий. Кроме того, по ходу обработки сценарий может самостоятельно генерировать данные (например, вычислить дату двумя неделями позднее текущей), а затем использовать их.

Манипулировать данными можно с помощью операторов (operator) - символов, которые обычно применяются для обозначения математических функций. Какие-то операторы имеют более высокий приоритет, какие-то - более низкий, и это влияет на порядок вычисления выражений (expression). Выражение есть некоторое вычисление, в которое могут быть включены числа, переменные, строки, константы. В выражениях могут использоваться операторы. Например, выражение dInputDate + 2 = dNewDate означает, что к значению переменной dInputDate добавляется 2, и результат вычисления вновь присваивается переменной dNewDate.

Функции и подпрограммы

VBScript имеет набор встроенных функций, которые позволяют выполнять некоторые операции без подробного описания решаемой задачи. С помощью встроенных функций можно манипулировать числами, строками, значениями даты и времени, массивами. В состав VBScript также входят функции преобразования данных одного типа в другой. Например, VBScript обычно исходит из того, что число, допустим, 45, имеет тип "число", но при необходимости его можно рассматривать как данные строкового типа.

VBScript предусматривает создание собственных функций пользователя (user-defined function, UDF) для выполнения каких-то специфических задач. Например:

Пользовательская функция TestFunct работает со встроенной функцией Sqr для извлечения квадратного корня из 9 и добавления к полученному результату 2. UDF, как и встроенная функция, может использовать аргументы.

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

Объекты в сценарии

Объект (Object) представляет собой физическую или логическую часть вычислительной среды, например дисковод или имя учетной записи. Конечно, можно программировать, не прибегая к объектам, но большинство сценариев управления работает с объектами. Если используется WSH, VBScript может обращаться к объектам, изначально присущим WSH, например, представляющим файлы, каталоги, части реестра; VBScript также поддерживает объекты Windows Management Instrumentation (WMI) и Active Directory Service Interfaces (ADSI). Объекты WMI связаны с физическими и логическими частями вычислительной системы: например, адресами IP, файловыми системами, сетевыми адаптерами. ADSI-объекты представляют ресурсы службы каталогов: в частности, Active Directory (AD) или иные поддерживаемые каталоги, скажем Windows NT 4.0 SAM. Статические группы объектов одинаковой природы называются классами, а группы, описываемые пользователем, - библиотеками.

Объекты имеют свойства и методы. Объект определяется его свойствами (т. е. IP Address - это свойство объекта Network Card, а 12.4.21.197 - значение данного свойства). Методы - это действия, которые могут выполняться над объектом (Copy - один из методов объекта File). Не все объекты имеют методы. Свойства и методы используются при написании кода одинаково: сначала следует объект, затем ставится точка, далее название метода или свойства (например, ObjectName.PropertyName). Объекты могут содержать другие объекты. В частности, объект WSH WScript включает подчиненный объект WshArguments, который является набором аргументов, передаваемых при вызове файлу-сценарию. Для выделения первого элемента строки аргументов используется WScript.Arguments(0). Как было видно при обсуждении объектов WSH, формальное имя подчиненных объектов не совпадает с именем, используемым при обращении к ним в сценарии.

В следующий раз я расскажу о том, как применять полученные знания при создании сценариев управления.

Советы по составлению сценариев

В следующей статье будут приведены более конкретные советы по программированию на VBScript, а сейчас ограничимся общими правилами, которых нужно придерживаться всегда:

либо установить среду командной строки в виде среды по умолчанию:

В сценариях часто используются кавычки, и, если текстовый процессор так или иначе преобразует их, сценарий просто не будет работать.


Основы пакетного сценария

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

Есть много команд, которые вы можете использовать в своих пакетных сценариях для различных целей, однако некоторые основные команды перечислены ниже:

Примечание. Имя файла должно отличаться от системных файлов по умолчанию, чтобы оно не конфликтовало между собой и не создавало беспорядка. Вы также можете использовать расширение «.cmd», более ранние версии Windows не будут его запускать.

Написание простых пакетных скриптов

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


  1. Удерживая клавишу Windows, нажмите S, чтобы открыть функцию поиска. Теперь введите «Блокнот» и нажмите Enter, чтобы открыть блокнот.Открытие блокнота через функцию поиска
  2. Следуя приведенным выше основным командам, вы можете написать простой пакетный скрипт, как показано ниже: @ECHO OFF

:: Это комментарий, который вы можете написать в пакетном скрипте.

ECHO Hello Appuals Пользователи, это простой пакетный скрипт.

Написание разных пакетных сценариев для разных целей

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

1. Копирование / перемещение файлов с помощью пакетного скрипта

Пакетный скрипт для копирования файлов из источника в место назначения. Этот пример можно использовать для копирования или перемещения фотографий с SD-карты телефона или камеры в системную папку. Этот пакетный файл можно использовать, если вы в основном используете один и тот же источник (USB / SD-карта) для перемещения файлов. Пользователям не нужно выбирать новые файлы на USB каждый раз, когда они хотят переместить / скопировать их на ПК. Определив исходное и целевое местоположение, вы можете копировать / перемещать файлы, просто щелкнув этот пакетный скрипт.

Примечание. Вы также можете переместить файлы, изменив ‘xcopy‘ на ‘move‘ в приведенном выше коде.

2. Изменение расширения файлов в папке

Вы также можете создать командный файл для изменения расширения всех файлов в папке. Расширения могут быть изменены на аналогичный формат файла, например JPG на PNG, или это может полностью изменить работу файла. Если в текстовом файле есть код для пакетного сценария, пользователь может изменить расширение файла с .txt на .bat, как показано ниже:

    Сделайте текстовый файл и откройте его в блокноте. Напишите следующий код, как показано ниже: @ECHO OFF

3. Проверка Ping для двух разных сайтов с помощью однострочной команды в пакетном скрипте

Это пример использования нескольких команд для командной строки через пакетный скрипт. Это зависит от потребностей пользователя и его личных предпочтений. Есть несколько полезных команд, которые можно использовать одну за другой для достижения определенной цели. Ниже у нас есть код для проверки пинга двух разных URL:

    Создав новый текстовый файл, напишите в нем следующий код: @ECHO OFF

НАЗВАНИЕ ПРОВЕРКИ НАЗВАНИЯ

Примечание. Вы можете добавить любой URL-адрес, для которого вы хотите проверить ping.

Пользователи могут делать гораздо больше с пакетными сценариями, следуя правилам пакетных сценариев.

Читайте также: