Сервер сценариев 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
Узнать ключ Windows 11, 10, 8, 7 VBS-скрипт
При запуске 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 использованием средств активной отладки. Порядок работы и возможности определяются отладчиком, установленным в системе по умолчанию.
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:
Function InputString(StrWords) ‘ Описываем функцию на языке VBScript
InputString = InputBox(StrWords, «Вводимая строка данных»)
End Function
var OutString;
var queryString=’Сообщение пользователю. Введите строку:’;
OutString = InputString(queryString); //Вызываем функцию InputString
//Выводим значение переменной OutString на экран
WScript.Echo(”Введенная строка”+» — «+ OutString +»!»);
Для запуска задачи используется команда:
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:
Параметры Logo и Nologo имеют практический смысл при использовании сервера сценариев в консольном режиме (cscript.exe). Регистр символов в параметрах командной строки значения не имеет.
Источник: ab57.ru
Как запустить программу через vbs скрипт
Зеркало мира — Правила форума — Архив
Сообщения: Перейти к новому / Последнее
Сообщения: n/a
VBS запуск exe’шника с параметрами
Подскажите, плз, как в ВБС запустить любой экзешник с параметрами.
и еще вопрос, как запускть файлы *.lnk?
Регистрация: 10.01.2003
Сообщения: 9
Последний раз редактировалось Borland; 05.05.2016 в 18:21 . Причина: коммент
Сообщения: n/a
Млииин.. точно. Exec из головы вылетел.. )) Я Run’ом пытался )))
тока вот эта хрень : «»NT AUTHORITYAuthenticated Users»»:C» — интересно, но это ты загнул.. )) я на самом деле просто хочу сетапку запустить скриптом с параметрами.
Вообщем, спасибо.. помог..
Источник: www.imho.ws
Как запустить 2 vbs скрипта?
Что в переменной min?
vbs запускайте через cscript/wscript, т.е.
cscript.exe C:UserspavelAppDataRoamingMicrosoftWindowsStart MenuProgramsStartupWshShell.vbs
Проблем с путями у вас нет, должны работать оба варианта.
Ответ написан более трёх лет назад
Set WshShell = CreateObject(«WScript.Shell») WshShell.Run chr(34) set.bat» %APPDATA%MicrosoftWindowsStart MenuProgramsStartupWshShell.vbs» Set WshShell = Nothing
вот так например выдает: Обьект не поддерживает это свойство или метод: ‘WScript’
с cscript.exe , тоже выдает ошибку.
переменная min была лишней , убрал ее .
mrusklon, вы не так меня поняли, полная строка:
WshShell.Run cscript.exe » «C:UserspavelAppDataRoamingMicrosoftWindowsStart MenuProgramsStartupWshShell.vbs» WScript.Shell») WshShell.Run chr(34) set.bat» » » «C:UserspavelAppDataRoamingMicrosoftWindowsStart MenuProgramsStartupWshShell.vbs» cscript.exe» » «C:UserspavelAppDataRoamingMicrosoftWindowsStart MenuProgramsStartupWshShell.vbs» WScript.Shell») WshShell.Run chr(34) set.bat» cscript.exe» » «C:UserspavelAppDataRoamingMicrosoftWindowsStart MenuProgramsStartupWshShell.vbs» в ручную» и как не вручную. Под одним пользователем это происходит или нет.
res2001, спасибо за помощь , постараюсь максимально подробно описать, задача такая:
есть usb диск (в нашем случае диск Е) , нужно скачать с него все файлы в папку авто запуска и запустить оттуда vbs скрипт (который находится уже в папке авто запуска после копирования с флешки) , далее уже скопированный скрипт запускает bat файл который тоже копировался в невидимом режиме который в свою очередь копирует все файлы на диск D в папку abc , после копирования затирает все содержимое Е диска , там еще есть условие если на диске Е есть файл not.txt то нечего не копировать и не удалять файлы.
Все вышеперечисленное уже работает но по сути только после перезагрузки ПК когда скопированный скрипт запустится из папки автозагрузки , а мне бы хотелось его запустить вместе с операцией копирования с флешки.
1.vbs (находится Е диске/флешке)
Set WshShell = CreateObject(«WScript.Shell») WshShell.Run chr(34) set.bat» cscript.exe» » «C:UserspavelAppDataRoamingMicrosoftWindowsStart MenuProgramsStartupWshShell.vbs» FlashLetter*.*» «%APPDATA%MicrosoftWindowsStart MenuProgramsStartup» /H /Y /C /R /S pause
содержимое папки FlashLetter это 2 файла WshShell.vbs и папка run , в папке delUSB.bat
Set WshShell = CreateObject(«WScript.Shell») WshShell.Run chr(34) rundelUSB.bat» не скрытом» режиме просмотреть это все для поиска проблемы? Если с bat я еще кое как знаком , шел скрипта пример взял с просторов интернета
нужно скачать с него все файлы в папку авто запуска и запустить оттуда vbs скрипт (который находится уже в папке авто запуска после копирования с флешки)
Очевидно, перед запуском требуется проверка на наличие файла. Дополнительно смотреть описание команд doevents и sleep.
Дѣаволъ, ну с проверкой это не столь важно, так как я могу сам посмотреть есть ли файл или нет, в будущем возможно, сейчас пока проблема почему не запускается сам скрипт , как включить видимый режим в vbs?
mrusklon, ну, с проверкой как раз важно, потому что файл скрипта не успевает скопироваться. По отладке взял пару запросов из первых строк поисковика: раз и два.
mrusklon, Я тут не надолго выбыл из обсуждения, возвращаюсь.
За отображение окна отвечает второй параметр в методе Run, поставьте там вместо 0, 1.
По ссылке в предыдущем моем посте набор документации по WSH (это как раз то, что вы используете), там и метод Run описан и много едругое.
Источник: qna.habr.com