Windows script file javascript

Скрипты сервера Windows Script Host (WSH)

В статье описаны скрипты WSH (Windows Script Host), способы их запуска, состав и функциональные возможности самого сервера Windows Script Host, и несколько примеров WSH скриптов. И так, давайте приступим. Все скрипты WSH являются интерпретируемыми, то есть, для их выполнения не требуется не требуется посредника, который будет преобразовывать ваш код в машинный. Вы просто открываете блокнот и пишите код сценария WSH. По умолчанию, Windows Script Host позволяет писать сценарии на двух языках, это VBScript и Jscript, но, при желании можно установить дополнительные модули для остальных языков, например, Perl, Phyton, TCL и так далее.

Теперь давайте рассмотрим, какие типы WSH сценариев можно создавать по умолчанию и их расширения:

.vbs – данный тип файлов содержит программный код на языке VBScript, если запустить такой скрипт, то сервер Windows Script Host автоматически применит для его обработки интерпретатор VBScript.
.vbe – в данном случае, это такой же файл как и vbs, но, закодированный.
.js — данный тип файлов содержит программный код на языке JScript, сервер автоматически будет его обрабатывать интерпретатором Jscript
.jse – закодированный сценарий WSH для языка Jscript.
.wsf – данный тип файлов содержит разметку XML и позволяет объединять вместе синтаксис различным языков.
.wsc – используется для регистрации вашего скрипта как COM-компонента (скриплет). Данный тип файлов требует отдельной статьи.
.wsh – управляет скриптом, аналог файла *.pif для DOS-программ. Будет рассмотрен в данной статье более подробно.

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

cscript.exe – данная программа позволяет запускать сценарии wsh в консольном режиме, то есть, в окне командной строки.
wscript.exe – запуск сценариев wsh в графическом режиме. По умолчанию, при запуске, его обрабатывает именно wscript.exe.

Для простоты эксперимента, напишем два примера, один на языке VBScript, а второй на языке Jscript:

Тут мы используем лишь один объект WScript, объявлять который не надо, он автоматически доступен. Свойство Echo отвечает за вывод информации, остальные свойства (Name, FullName …) позволяют нам получить дополнительную информацию, знак & позволяет объединять строки, символ подчеркивания говорит, что мы разделили строку, константа vbCrlf отвечает за перевод каретки.

И вот аналогичный скрипт WSH, но уже на языке Jscript:

Тут мы объявили переменную Mess, в которую прописали несколько строк, плюсик отвечает за объединение строк, а \n – за перевод строки. Для полноты понимания, советую, вам все-таки познакомиться с основами VBScript и Jscript и с остальными статьями из этой рубрики.

Хорошо, теперь стоит уточнить один момент, по умолчанию, если вы сохраните данные сценарии wsh и запустите их с помощью щелчка мыши, то их обработает программа wscipt.exe, однако есть одно но. После установки различных программ или каких-то изменений в системе, сценарии wsh будут обрабатываться совсем другой программой (блокнот, например). Просто надо отрыть свойства файла (скрипта), и изменить приложение для их обработки на wscript.exe (папка Windows\System32).

Теперь давайте рассмотрим способы запуска скриптов wsh.

Консольный режим в командной строке – просто откройте командную строку и пропишите:

cscript.exe “путь к сценарию wsh”

Кавычки нужны лишь в том случае, если путь содержит пробелы, пример:

cscript.exe D:\work\info.vbs
cscript.exe D:\work\info.js

Графический режим в командной строке – просто откройте командную строку и пропишите:

wscript.exe “путь к сценарию”

wscript.exe D:\work\info.vbs
wscript.exe D:\work\info.js

Используя меню Пуск – Откройте меню пуск, и в поле Выполнить введите путь к сценарию wsh. Например:

D:\work\info.vbs
D:\work\info.js

Хорошо, теперь настало время настройки параметров запуска

Параметры cscript.exe — если вы войдете в командную строку и пропишите cscript.exe, то вам будет показан список параметров запуска сценариев wsh. Все параметры начинаются с символов //. Встроенной справки хватит, что бы во всем разобраться. Так, параметр //Job используется при вызове заданного задания для файлов wsf, пример я привел в статье “Знакомство с ws-файлами (windows script file)”.

Читайте также:  What directory is the kernel in linux

Параметры wscript.exe — тут все намного проще. Просто кликните по вашему wsh скрипту правой кнопкой, выберите пункт свойства и перейдите на вкладку Сценарий. Тут можно задать время, через которое произойдет остановка сценария. После того, как вы зададите значение в секундах и нажмете кнопку применить, появится файл с аналогичным названием, но с расширением wsh. Если теперь запустить этот скрипт, то произойдет выполнение сценария с заданными настройками, но, как вы уже догадались, тут есть один подводный камень. У нас сейчас два файла с одинаковыми именами (info), но с разными расширениями, для какого бы скрипты мы не применяли настройки, все ровно будет создан лишь один info.wsh. Ладно, на этом пока все, комментируйте и подписывайтесь.

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

Основы языка 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.

С первого взгляда 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.

Читайте также:  Как настроить точки восстановление системы windows 10

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

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

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

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

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

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

Работа с Excel на JScript

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

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

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

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

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

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

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

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

Клиентские Windows приложения на JavaScript

Хочу рассказать про один интересный способ создания приложений на JavaScript с родным виндовым GUI.

Вообще, существует куча разных вариантов написания виндовых приложений на JavaScript:

  1. HTA и WSH — HTML Applications и Windows Script Host — это, вероятно, самые известные технологии. HTA фактически представляет собой HTML страницу с расширенными правами в системе — возможностью лазить в сеть, гадить в реестр, файловую систему и подключать к этим делам ActiveX. С использованием HTA сделаны многие компоненты самой Windows.
  2. .NET Framework — этому вообще по барабану, на чем вы пишете, лишь бы итогом был MSIL. Возможно, JScript.NET вместе с Windows.Forms могут вызвать у кого-то ощущение родного виндового интерфейса. Лично меня они совсем не радуют — ни визуально, ни скоростью.
  3. XULRunner — framework от Mozilla предлагает Gecko вместо IE, XpCOM вместо COM/ActiveX. Это всего за 20 мегабайт оверхеда.
  4. wxJavascript — известная кросс-платформенная библиотека wxWidgets теперь и для JavaScript. Все это благодаря JS-движку SpiderMonkey от Mozilla и стараниям одного бельгийца. Кстати, этот же уважаемый — автор mod_js для Apache.

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

Цитируя автора:

WindowSystemObject (WSO) — это универсальный программный комплекс для обеспечения доступа к оконной подсистеме Windows на базе архитектуры COM, для создания оконных интерфейсов в программах, написанных на сценарных (скриптовых) языках, а также в программах, написанных на других языках и в других системах программирования. С помощью WSO можно легко создавать оконные интерфейсы на JScript, VBScript, Perl, Python.

После этих слов ничего, кроме огромного человеческого спасибо Александру Борисовичу Веретенникову, и не скажешь.

Опять цитата о возможностях WSO:

  • WSO обеспечивает полный доступ ко всем возможностям оконной системы, включая рисование в окнах и поддержку всех встроенных управляющих элементов Windows.
  • WSO поддерживает использование любых элементов ActiveX, таких как Internet Explorer или Windows Media Player.
  • WSO поддерживает работу со всеми популярными форматами графических файлов.
  • WSO доступен из любого языка программирования, поддерживающего COM-интерфейсы автоматизации.
  • Доступ к WSO осуществляется с помощью интуитивно понятной объектной модели, описанной в этом документе. Программисты, знакомые с оконным программированием для Windows, быстро обнаружат, что ничего нового им осваивать не нужно.
  • WSO обеспечивает полную поддержку обработки событий от оконных элементов.
  • WSO позволяет использовать символические имена констант, принятые в оконном программировании Windows, а не мучиться с их числовыми значениями.
  • WSO работает в любой современной версии Windows, а именно: 98SE, ME, NT 4, 2000, XP и 2003.

Работа с файлами в JavaScript

Доброго времени суток, друзья!

Читайте также:  Установил windows 10 синий экран

Мнение о том, что JavaScript не умеет взаимодействовать с файловой системой, является не совсем верным. Скорее, речь идет о том, что это взаимодействие существенно ограничено по сравнению с серверными языками программирования, такими как Node.js или PHP. Тем не менее, JavaScript умеет как получать (принимать), так и создавать некоторые типы файлов и успешно обрабатывать их нативными средствами.

В этой статье мы создадим три небольших проекта:

  • Реализуем получение и обработку изображений, аудио, видео и текста в формате txt и pdf
  • Создадим генератор JSON-файлов
  • Напишем две программы: одна будет формировать вопросы (в формате JSON), а другая использовать их для создания теста

Если Вам это интересно, прошу следовать за мной.

Получаем и обрабатываем файлы

Для начала создадим директорию, в которой будут храниться наши проекты. Назовем ее «Work-With-Files-in-JavaScript» или как Вам будет угодно.

В этой директории создадим папку для первого проекта. Назовем ее «File-Reader».

Создаем в ней файл «index.html» следующего содержания:

Здесь мы имеем контейнер-файлоприемник и инпут с типом «file» (для получения файла; мы будем работать с одиночными файлами; для получения нескольких файлов инпуту следует добавить атрибут «multiple»), который будет спрятан под контейнером.

Стили можно подключить отдельным файлом или в теге «style» внутри head:

Можете сделать дизайн по своему вкусу.

Не забываем подключить скрипт либо в head с атрибутом «defer» (нам нужно дождаться отрисовки (рендеринга) DOM; можно, конечно, сделать это в скрипте через обработку события «load» или «DOMContentLoaded» объекта «window», но defer намного короче), либо перед закрывающим тегом «body» (тогда не нужен ни атрибут, ни обработчик). Лично я предпочитаю первый вариант.

Откроем index.html в браузере:

Прежде чем переходить к написанию скрипта, следует подготовить файлы для приложения: нам потребуется изображение, аудио, видео, текст в формате txt, pdf и любом другом, например, doc. Можете использовать мою коллекцию или собрать свою.

Нам часто придется обращаться к объектам «document» и «document.body», а также несколько раз выводить результаты в консоль, поэтому предлагаю обернуть наш код в такое IIFE (это не обязательно):

Первым делом объявляем переменные для файлоприемника, инпута и файла (последний не инициализируем, поскольку его значение зависит от способа передачи — через клик по инпуту или бросание (drop) в файлоприемник):

Отключаем обработку событий «dragover» и «drop» браузером:

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

Обрабатываем бросание файла в файлоприемник:

Мы только что реализовали простейший механизм «dran’n’drop».

Обрабатываем клик по файлоприемнику (делегируем клик инпуту):

Приступаем к обработке файла:

Удаляем файлоприемник и инпут:

Способ обработки файла зависит от его типа:

Мы не будем работать с html, css и js-файлами, поэтому запрещаем их обработку:

Мы также не будем работать с MS-файлами (имеющими MIME-тип «application/msword», «application/vnd.ms-excel» и т.д.), поскольку их невозможно обработать нативными средствами. Все способы обработки таких файлов, предлагаемые на StackOverflow и других ресурсах, сводятся либо к конвертации в другие форматы с помощью различных библиотек, либо к использованию viewer’ов от Google и Microsoft, которые не хотят работать с файловой системой и localhost. Вместе с тем, тип pdf-файлов также начинается с «application», поэтому такие файлы мы будем обрабатывать отдельно:

Для остальных файлов получаем их «групповой» тип:

Посредством switch..case определяем конкретную функцию обработки файла:

Функция обработки изображения:

Функция обработки аудио:

Функция обработки видео:

Функция обработки текста:

Last, but not least, функция обработки pdf-файлов:

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