Что такое сценарии windows jscript

CScript – сервер сценариев Windows с консольным интерфейсом.

Утилита командной строки cscript.exe является компонентом Windows Script Host (WSH) и предназначена для выполнения сценариев (скриптов), написанных на языках VBScript и Jscript (файлов с расширением .vbs и .js ). Сценарии WSH могут запускаться с помощью одной из двух программ — wscript.exe (с графическим интерфейсом) или cscript.exe (с консольным интерфейсом). Функционально, обе программы близки, но отличаются пользовательским интерфейсом, что предполагает разные области применения – графический интерфейс более удобен для выполнения интерактивных сценариев, а консольный – для сценариев администрирования, не требующих диалога с пользователем. Диалоговый режим при выполнении сценариев как с использованием cscript.exe , та и с использованием wscript.exe может быть отключен специальным параметром командной строки, однако, если этого не сделать, сценарий может потребовать вмешательства оператора. Так, например инструкция WScript.Echo , при выполнении в консольном окне, выведет на экран текстовую строку, точно так же, как это делает командный процессор CMD Windows, а при выполнении в графической среде – отобразит стандартное окно сообщений Windows с текстом и кнопкой ”Ok”, нажатие на которую позволит продолжить выполнение сценария.

Большинство сценариев администрирования Windows (в том числе многие сценарии, предлагаемые Microsoft) требуют использовать CScript в качестве сервера сценариев. Также следует отметить, что некоторые из свойств объекта WScript (не путать с сервером сценариев WScript!) существуют только тогда, когда активным сервером сценариев является CScript . По умолчанию, в среде WSH используется сервер сценариев wscript.exe

Формат командной строки cscript.exe :

CScript имя_сценария.расширение [параметры. ] [аргументы. ]

Параметры командной строки:

//B — Пакетный режим: подавляются отображение ошибок и запросов сценария

//D — Включение режима Active Debugging

//E:ядро — Использование указанного ядра для выполнения сценария

//H:CScript — Стандартный сервер сценариев заменяется на CScript.exe

//H:WScript — Стандартный сервер сценариев заменяется на WScript.exe (по умолчанию)

//I — Диалоговый режим (по умолчанию, в противоположность //B)

//Job:xxxx — Выполнение указанного задания WSF

//Logo — Отображать сведения о программе (по умолчанию)

//Nologo — Не отображать сведения о программе во время выполнения

//S — Присвоить установкам сервера сценариев Windows значения по умолчанию.

//T:nn — Интервал ожидания (в секундах): максимальное время выполнения сценария

//X — Выполнение сценария в отладчике

//U — Использование кодировки Юникод при перенаправлении ввода-вывода с консоли

Как видим, особенность параметров командной строки для сервера сценариев – это использование двойной косой черты (двойной прямой слэш – forward slash). Для получения подсказки по использованию, допускаются команды cscript /? и cscript -?

Примеры использования сервера сценариев CSCript

cscript //B hello1.vbs — выполнить сценарий hello1.vbs в пакетном режиме. Сценарий будет выполнен без каких-либо сообщений или запросов пользователю.

cscript //D //X hello1.vbs — выполнить сценарий hello1.vbs в среде отладчика c использованием средств активной отладки. Порядок работы и возможности определяются отладчиком, установленным в системе по умолчанию.

cscript.exe /E:VBScript.Encode hello1.js — выполнить сценарий hello1.js но использовать исполняющее ядро VBScript.Encode . Надо отметить, что программный модуль cscript.exe , как и wscript.exe , будучи сервером сценариев, не является интерпретатором языка, на котором написан сценарий, и всего лишь выполняет вызов интерпретатора в соответствии с расширением файла или в соответствии со значением параметра //E: . В качестве интерпретаторов используются динамические библиотеки:

jscript.dll — для языка Jscript

vbscript.dll — для языка VBScript

cscript.exe /H:CScript — установить в качестве сервера сценариев, используемого по умолчанию cscript.exe . После выполнения команды, отображается сообщение:

Читайте также:  Что такое секция windows

Используемый по умолчанию сервер сценариев: «cscript.exe».

Стандартно, сервером сценариев по умолчанию, является wscript.exe .

cscript //I hello1.vbs — выполнить сценарий hello1.vbs в интерактивном режиме. Сценарий будет выполнен с отображением сообщений и запросов пользователю ( противоположность параметру //B ).

cscript //Job:main vcbp2vWrapper.wsf — выполнить задачу с идентификатором main , параметры которой описываются содержимым файла vcbp2vWrapper.wsf . Файл с параметрами задачи – это XML-файл, обрабатываемый сервером сценариев в соответствии с указанными XML — элементами. Обычно, файлы .wsf используются в тех случаях, когда необходимо в рамках одного сценария выполнить фрагменты исходного кода, написанные на разных языках программирования. Например:

В частности, использование задач .wsf продиктовано необходимостью реализации пользовательского ввода для сценариев на языке JScript. В реализации языка такой ввод отсутствует, но в VBScript есть функция InputBox которая как раз и позволяет это сделать. Обычно, в разделе на языке VBScript описывается пользовательская функция (например, InputString) для ввода значения посредством функции InputBox. А из раздела на языке JScript выполняется обращение к функции InputString так, как будто она была написана на этом же самом языке.

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

Для запуска задачи используется команда:

cscript //Job:Str1 hello1.wsf — выполнить задачу с идентификатором Str1 из файла hello1.wsf

cscript //Nologo //Job:Str1 hello1.wsf — то же, что и в предыдущем примере, но на экране не будет отображаться информация о сервере сценариев. По умолчанию – данная информация отображается. Пример:

Сервер сценариев Windows (Microsoft ®) версия 5.812

Copyright (C) Корпорация Майкрософт 1996-2006, все права защищены.

cscript //S — Присвоить установкам сервера сценариев Windows значения по умолчанию. В справке, отображаемой по команде cscript /? , параметр //S трактуется как ”Сохранить для данного пользователя текущие параметры командной строки”, что не совсем верно. Попробуйте в качестве сервера сценариев по умолчанию задать cscript.exe, а затем выполните команду cscript //S , в результате чего, сервером сценариев по умолчанию снова станет wscript.exe

cscript //Nologo //T:5 //Job:Str1 hello1.wsf — аналогично рассмотренным выше примерам, но на выполнение сценария отводится 5 секунд. По истечении указанного времени сценарий будет принудительно завершен ( например, если пользователь не отвечает на запрос сценария).

Основы языка JScript — написание WSH скриптов

Сегодня поговорим об очень полезном компоненте операционной системы Windows — это Windows Script Host, если быть конкретней, то о языке Jscript, на котором можно писать эти самые WSH скрипты.

Начнем мы с небольшой теории, так как мы еще не затрагивали Windows Script Host.

Что такое Windows Script Host?

Windows Script Host – сервер выполнения сценариев (скриптов) на таких языках как VBScript и JScript. WSH разработан компанией Microsoft и он является компонентом операционной системы Windows начиная с Windows 98.

Первоначально для администрирования использовались только bat-файлы, но их возможности ограничены (хотя также очень полезны!), поэтому компания Microsoft предложила такой вариант WSH. Возможности WSH-скриптов уже гораздо больше, ведь данные скрипты уже создаются на полноценных языках, таких как VBScript и JScript.

Именно о JScript мы сегодня и поговорим.

Но о VBScript мы тоже скажем пару слов.

VBScript – это скриптовой язык программирования, созданный компанией Microsoft для разработки скриптов в операционной системе Windows. Другими словами, это один из языков, которые может интерпретировать Windows Script Host. И из названия ясно, что VBScript основан на языке Visual Basic, поэтому тем, кто знаком с Visual Basic будет просто писать WSH-скрипты на этом языке программирования.

JScript – скриптовой язык программирования, с помощью которого можно создавать (писать) скрипты, которые будут интерпретироваться компонентом Windows Script Host.

Читайте также:  Не могу поставить свое разрешение экрана windows 10

С первого взгляда JScript во многом похож на JavaScript (ECMAScript), это и естественно, так как синтаксис, некоторый объекты, методы, свойства аналогичны JavaScript. Но это все же не JavaScript, а именно JScript. JavaScript (ECMAScript) ориентирован на объекты браузера, а JScript уже на компоненты операционной системы Windows. Но как мы сказали, они похожи, поэтому те, кто владеют языком программирования JavaScript с легкостью перейдут на JScript.

Возможности Windows Script Host

А теперь давайте поговорим о том, зачем нам нужно писать эти самые WSH-скрипты, т.е. об их возможностях и преимуществах:

  • Возможность взаимодействия с файловой системой (файлы, каталоги), системным реестром, ресурсами локальной сети;
  • Взаимодействие с такими продуктами как Microsoft Word, Excel и другими программами. Т.е. например, мы можем создавать excel файлы или конвертировать другие форматы в excel файлы;
  • Взаимодействие с ActiveX-технологиями, например: ActiveX Data Object (ADO) — доступ к базам данных разных форматов, Active Directory Service Interface (ADSI) — работа со службами каталогов Active Directory;
  • Наличие полноценного языка программирования, с помощью которого можно реализовывать сложные алгоритмы, которые например нельзя реализовать с помощью bat файлов.

Скрипты на JScript имеют расширение .js такое же, как и на JavaScript за исключением того, что эти скрипты обрабатывает не браузер, а Windows Script Host.

На JScript возможно даже реализация графического интерфейса через объект браузера (internet explorer), согласитесь это уже полноценная программа.

Примеры написания WSH скриптов

Перейдем к практике, так как у нас сегодня статья по основам, мы рассмотрим простые примеры написание скриптов на JScript.

Примечание! Для того чтобы попробовать примеры ниже скопируйте код любого примера в текстовый файл и сохраните с расширением .js, например, test.js.

Выводим сообщение на JScript

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

Этим объектом является WScript. Пример его использования на Jscript:

Тем самым мы создали объект, с помощью которого мы можем получить доступ к компонентам Windows.

Например, вывести сообщение:

Работа с Excel на JScript

Теперь давайте создадим другой объект, например, Excel файл:

Как Вы понимаете, мы имеем доступ ко всем свойствам в Excel, другими словами, мы можем изменить внешний вид, задать формат ячеек и многое другое. Для примера давайте поэкспериментируем с некоторыми свойствами:

Работа с текстовым файлом и Excel на JScript

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

Для того чтобы настроить взаимодействие с файловой системой, необходимо создать объект FileSystemObject, который работает с файлами и каталогами. Вот пример небольшого скрипта, который считывает данные из текстового файла построчно и записывает их в Excel документ, причем мы все строки пронумеруем и зададим ширину столба для данных в Excel:

Пример текстового файла:

Как всегда весь код я прокомментировал, поэтому неясностей возникнуть не должно.

Я думаю для начала этого вполне достаточно, в дальнейшем мы будем разбирать задачи посложней, ведь при помощи Jscript в WSH можно очень много чего сделать, гораздо больше, чем с помощью простых bat файлов. До встречи!

Урок 1 по JScript — знакомство, js скрипты

Всем привет, с вами автор блога scriptcoding.ru. В этой стартовой статье мы кратко рассмотрим синтаксис языка программирования JScript языка и несколько простых примеров сценариев.

Язык JScript не требует дополнительной установки и входит в состав сервера Windows Script Host, который в свою очередь, является частью операционной системы Windows. Что бы создавать JS скрипты, достаточно использовать простой блокнот, хотя лучше подойдет редактор Notepad++ (смотрите статью «Редактор Notepad++ — Знакомство»). Все скрипты JS сохраняются с расширением .js.

Синтаксис JScript языка чувствителен к регистру, поэтому, при объявлении переменных или при вызове методов стоит обращать внимание на регистр символов. Для комментирования одной строки, в начале прописывается двойная косая черточка ( // ), что бы комментировать сразу несколько строк применяется конструкция /* … */ . При работе с переменными нет необходимости указывать их тип (более детально работу с переменными я разобрал в статье «Урок 2 по JScript — типы данных и переменные JS»). Как и язык VBScript, синтаксис языка JScript позволяет подключать внешние объекты, что значительно расширяет его возможности.

Стоит обратить внимание, что хотя JS скрипты и являются разработкой компании Microsoft, но они практически идентичен сценариям языка JavaScript, так что те, кто уже знакомы с JavaScript, с легкостью освоят JScript.

Читайте также:  Системный вызов linux mmap

JS скрипты

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

Видим, что вначале идёт комментирование скрипта JS, как правило, комментарии должны описывать назначение сценария, или строк кода. Тут мы просто прописали имя JS скрипта и его название. Далее с помощью ключевого слова var мы объявили переменные, видим, что переменным можно сразу присваивать значения. Для примера, я объявил один массив, который хранится в переменной MyArr (работу с массивами я рассмотрел в статье «Урок 5 по JScript: Работа с массивами»). С помощью конструкции WScript.Echo мы можем выводить нужные нам значения, например, переменные или просто текст. Также, обратите внимание, что в конце каждого оператора прописывается точка с запятой. Что бы обработать по отдельности каждый элемент массива, мы использовали цикл for (работу данного цикла я подробно описал в статье «Урок 9 по JScript: Цикл for»). Видим, что синтаксис JScript языка требует для обращения к элементу массива в квадратных скобках прописывать его индекс, нумерация элементов начинается с нуля. Также в программном коде я создал ссылку на объект (смотрите статью «Объект WScript.Shell метод Popup — создание диалогового окна»), что бы воспользоваться методом Popup для вывода содержимого переменной list.

Хорошо, теперь давайте рассмотри еще один пример:

Для новичка синтаксис данного JS скрипта может показаться непонятным. Но, в будущем, когда опыта прибавляется, такой подход написания программного кода может сильно пригодиться. И так, что же мы тут прописали?

my_fun = function(a,b) – Это функция (подробно работу с функциями я рассмотрел в статье «Урок 3 по JScript: Объявление пользовательских функций»), доступ к ней осуществляется через переменную my_fun. Видим, что ей передаются два параметра, a и b, ключевое слово return говорит, что именно должна вернуть функция, в данном случае – сумму параметров a и b.

my_obj = – Это объект (подробно работу с объектами я рассмотрел в статье «Урок 4 по JScript: Создание собственных объектов»), у него три свойства. Свойство x хранит число 100, свойство y – число 200, а свойство под именем z хранит в себе функцию my_fun, и фактически, становится методом.

Обратите внимание на конструкцию with(WScript) , вам часто придется встречать оператор with. Данный оператор позволяет сократить программный код, что бы не писать лишний раз имя объекта.

Как видим, использование такого синтаксиса языка JScript немного отличается от VBScript. В конце JS скрипта мы дважды вызываем нашу функцию, сначала через переменную my_fun, а потом через свойство z объекта my_obj.

И так, давайте подвед`м итоги… В этой статье мы рассмотрели скрипты JS, их общий синтаксис, пример подключения внешнего класса и работу с внутренним объектом (Array)

Спасибо за внимание. Автор блога Владимир Баталий

Оцените статью