Параметры сервера сценариев windows что это

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 . После выполнения команды, отображается сообщение:

Используемый по умолчанию сервер сценариев: «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 так, как будто она была написана на этом же самом языке.

Читайте также:  Приложение для создания установочной флешки windows

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

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

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 секунд. По истечении указанного времени сценарий будет принудительно завершен ( например, если пользователь не отвечает на запрос сценария).

WScript – сервер сценариев Windows с графическим интерфейсом.

Сервер сценариев wscript.exe , начиная с Windows 98, является стандартным компонентом Windows Script Host (WSH), и предназначен для выполнения сценариев (скриптов), написанных на языках VBScript и Jscript. Возможности сценариев WSH значительно выше возможностей командных файлов Windows, что позволяет решать многие задачи управления и контроля системы стандартными средствами без использования дополнительного программного обеспечения.

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

При запуске wscript.exe без параметров, отображается окно Параметры сервера сценариев Windows :

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

Для получения справки по работе с программой, можно воспользоваться командой:

Справка отображается в стандартном окне сообщений Windows:

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

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

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

//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 — Выполнение сценария в отладчике

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

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

wscript //B hello1.vbs — выполнить сценарий hello1.vbs в графическом режиме.

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

Читайте также:  Windows 10 pro для рабочих станций что это значит

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры сервера сценариев windows что это

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

имя_сценария — имя файла сценария, включая путь и расширение.
параметры_сервера — ключи командной строки, задающие различные свойства сервера сценариев Windows.
Параметр сервера всегда начинается с двух косых черт (//).

Параметр Описание
//B Пакетный режим: подавляются отображение ошибок и запросов сценария
//D Включение режима Active Debugging
//E:ядро Использование указанного ядра для выполнения сценария
//H:CScript Стандартный сервер сценариев заменяется на CScript.exe
//H:WScript Стандартный сервер сценариев заменяется на WScript.exe (по умолчанию)
//I Диалоговый режим (по умолчанию, в противоположность //B)
//Job:xxxx Выполнение указанного задания WSF
//Logo Отображать сведения о программе (по умолчанию)
//Nologo Не отображать сведения о программе во время выполнения
//S Сохранить для данного пользователя текущие параметры командной строки
//T:nnnnn Интервал ожидания (в секундах): максимальное время выполнения сценария
//X Выполнение сценария в отладчике
//U Использование кодировки Юникод при перенаправлении ввода-вывода с консоли
//? Вывод предусмотреных параметров командной строки и встроенной справки

Примечания

  • Все параметры являются необязательными, однако нельзя задать аргументы сценария, не задав сценарий. При отсутствии сценария программа Cscript.exe выведет описание синтаксиса команды и предусмотренные ключи ( аналогично параметру //?).
  • Параметр времени ожидания (//T:nnnnn) ограничивает максимальное время выполнения сценария. Можно указать значение времени до 32 767 секунд. По умолчанию время выполнения не ограничено. Если время выполнения превышает заданную величину, Cscript.exe прерывает работу обработчика и останавливает процесс.
  • Расширения файлов (.vbs для VBScript и .js для JScript) используются в обработчике сценариев для определения языка сценария.
  • Параметр //Logo, используемый по умолчанию, сделает вас счастливым свидетелем отображения на экране надписи что-то вроде этой:
    Сервер сценариев Windows (Microsoft R) версия 5.7
    Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.
Читайте также:  Linux скоро будет у всех

Если вы хотите лишить себя такого счастья — можете использовать параметр //Nologo.

Скрипт (JS или VBS) может быть выполнен сам по себе, ему могут быть переданы параметры из bat / cmd файла, и, наконец, используя несложные приемы можно получить обратно в bat / cmd файл результаты работы скрипта.
Рассмотрим сразу случай, когда данные передаются скрипту и результат обработки получают обратно в bat / cmd файле. Возможно вы будете удивлены легкости решения этой задачи.

Переменная qq содержит ваш пароль? Да, я подсматривал.
А вот и содержимое файла strlen.js:

Приведенный выше скрипт возвращает длину строковой переменной, переданную ему как параметр.
То, что в скрипт могут быть переданы аргументы, мы уже рассматривали в синтаксисе cscript (см. выше).
Для получения данных из скрипта используется прием, рассмотренный в разделе ПРИМЕРЫ этого проекта на странице Анализ результатов работы команды, программы.
Код JavaScript (точнее, JScript) содержит извлечение аргумента, обращение к функции и вывод значения.
Небольшое отступление.
Когда я писал скрипт, то при вызове strlen.js не заключил аргумент в кавычки. При работе в большинстве случаев результат был правильным, но иногда и нет. Это сейчас все кажется понятным. А тогда поиск ошибки занял немало времени. Да и в таком варианте если строка сама содержит кавычки, то результат ее вам может не понравиться
Аналогичным образом можно обращаться и к другим функциям языка, значительно расширив таким образом возможности bat / cmd программ. Например, использовать для обработки регулярные выражения.

В данном случае использовалась процедура удаления ведущих и замыкающих пробелов у строковой переменной.
(В разделе ПРИМЕРЫ этого проекта на странице Примеры работы со строками в bat/cmd файлах приведена моя функция для этих же целей, как мне кажется, более эффективная. Здесь же использовалась функция специально использующая регулярные выражения)
Кроме того, это можно рассматривать и как пример использования собственных функций на JScript.
Пример обращения к такой функции:

И еще один пример.

И сам скрипт spacedrv.js:

В результате выполнения этого скрипта вы узнаете общий объем диска, свободное пространство на нем и тип файловой системы.
Здесь использовалась объектная модель сервера, речь о которой будет ниже.
Интерес в этом примере может представлять то, что JScript возвращает в bat / cmd файл сразу 3 значения.

Одно только такое использование значительно расширяют возможности bat / cmd файлов.
В вашем арсенале теперь есть возможности более мощного языка.
Стали доступны не только встроенные функции на JS или VBS, но и множество библиотек и функций на этих языках, которые без особого труда можно найти в сети.

Но при использовании cscript дополнительно доступны несколько классов со своими свойствами и методами.
Они раскрывают новые возможности. Или, говоря пафосно, новые горизонты.
Это довольно большой объем информации, и здесь будет сделана попытка кратко его изложить на отдельных страницах в рамках этого проекта. Хотя возможно, это будет и отдельный проект.

Очень кратко, обзорно, объектная модель сервера сценариев Windows представлена здесь. Следует отметить, что на этой странице рассматриваются далеко не все объекты, доступные для использования в cscript.

Работе с аргументами посвящена специальная страница.

Для работы с коллекциями часто используется Объект Enumerator

Отдельно объект FileSystemObject рассмотрен здесь. Несмотря на то, что что этот объект рассмотрен не очень подробно, исходный код страницы превысил две с половиной тысячи строк.

Объект WshNetwork — работа с сетевым окружением — краткое описание с примерами здесь.

WSH скрипты. Полезное — здесь.

Как объединить BAT/CMD и JSCRIPT в один файл описано здесь.

Отдельная страница посвящена различным примерам использования скриптов.

По мере возможности, желания и расположения Светил эти страницы будут пополняться и создаваться новые.

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

Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь

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