ПредишенСледващото

WSH скриптове. Примери.

Той ще обсъди различни примери за Windows Script Host (WSH) скриптове.

Околна среда имот

Взима един обект, който ви позволява да получите на околната среда променливи

Var f1 = WScript.CreateObject ( "WScript.Shell"); Var f2 = f1.Environment ( "Метод"); WScript.Echo (f2 ( "Windir"));

SpecialFolders собственост.

Връща пътя към специални папки.
Може би, за да получите по пътя към следните папки:
AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup, Desktop, любими, шрифтове, MyDocuments, NetHood, PrintHood, Програми, Последно, SendTo, StartMenu, Startup, шаблони.
Пример за приложение:

Var f1 = WScript.CreateObject ( "WScript.Shell"); Var f3 = f1.SpecialFolders ( "AllUsersDesktop"); WScript.Echo (f3);


Пример WSH скрипт копиране.


Следващият пример създава пряк път на URL адреса на работния плот


WSH скрипт може да инсталира нов принтер на Windows, да започне инсталирането на драйверите.

// JScript. Var нето; нето = нов ActiveXObject ( "WScript.Network"); net.AddWindowsPrinterConnection ( "\\\\ ServerName \\ PrinterName");


В този пример, WSH скрипт присвоява писмото възлага на потребителското устройство мрежа

// JScript. Var нето; нето = нов ActiveXObject ( "WScript.Network"); net.MapNetworkDrive ( "Аз:", "\\\\ computer2 \\ обществен", "True");


В следващия пример, ние смятаме, важна практическа задача: да се избере означава прозорци папка и прехвърли бухалка / ПМС името на файла папка и пътя към него.

ЗА / F "usebackq delims =" %% I В ( `cscript // nologo foldsel.js`) се определя sfold = %% и ако е определено sfold (ехо Изберете папка:. [% Sfold%]) Друго (ехо Не изберете папка)


Същият пример може да се запише като


Затворете всички прозорци на работния плот на Windows

Var f1 = WScript.CreateObject ( "Shell.Application"); f1.MinimizeAll ();


Отворете всички десктоп прозорците на Windows


Стартирайте Windows Explorer, за да отворите определена папка.

Var f1 = WScript.CreateObject ( "Shell.Application"); f1.Explore ( "г: \\ 00tt");


Определя се количеството на RAM

Var f1 = WScript.CreateObject ( "Shell.Application"); WScript.Echo (f1.GetSystemInformation ( "PhysicalMemoryInstalled"));


Call прозорец "Run"

Var f1 = WScript.CreateObject ( "Shell.Application"); f1.FileRun ();


Обаждане на прозореца изключете и рестартирайте компютъра

Var f1 = WScript.CreateObject ( "Shell.Application"); f1.ShutdownWindows ();


Отваря Network Connections Control Panel

Var f1 = WScript.CreateObject ( "Shell.Application"); f1.ControlPanelItem ( "ncpa.cpl");


прозорец интерн имоти

Var f1 = WScript.CreateObject ( "Shell.Application"); // Интернет свойства f1.ControlPanelItem ( "inetcpl.cpl");


Отваря свойствата регионалните настройки

Var f1 = WScript.CreateObject ( "Shell.Application"); // регионалните настройки свойства f1.ControlPanelItem ( "ntl.cpl");


Обадете прозорец Network имоти

Var f1 = WScript.CreateObject ( "Shell.Application"); // мрежа свойства f1.ControlPanelItem ( "Netcpl.cpl");


Абонамент Парола имоти

Var f1 = WScript.CreateObject ( "Shell.Application"); // парола свойства f1.ControlPanelItem ( "Password.cpl");


Отваря свойства на системата и Add New Hardware магьосник

Var f1 = WScript.CreateObject ( "Shell.Application"); // свойствата на системата и да добавяте нови съветника Хардуер f1.ControlPanelItem ( "sysdm.cpl");


Отваря теми на десктопа

Var f1 = WScript.CreateObject ( "Shell.Application"); // настолни Теми f1.ControlPanelItem ( "Themes.cpl");


Call Дата / Час свойства прозорец

Var f1 = WScript.CreateObject ( "Shell.Application"); // дата / час свойства f1.ControlPanelItem ( "TimeDate.cpl");


Обаждане на аплета може да бъде произведено директно използване Rundll32.exe. Тогава, например, прозорец за дата и час разговор с настройки може да изглежда така:

WshShell = WScript.CreateObject ( "WScript.Shell"); WshShell.Run ( "Rundll32.exe shell32.dll, Control_RunDLL timedate.cpl");


На страницата с Rundll32 команди описание може да се намери голям брой примери за използването му. Поради това промяната в примера по-горе, на последния ред, можете да получите всички тези функции на WSH.
Следващият пример се отваря един прозорец на браузъра към страницата.


Пример WSH скрипт Windows Explorer прозорец призвание "PC Търсене"

Var f1 = WScript.CreateObject ( "Shell.Application"); f1.FindComputer ();


Модален прозорец със заглавие прозорец, бутони и текст въпрос да, и не. Също така е срок, след което прозорецът ще бъдат принудително затворени (код на връщане 1).

Var f1 = WScript.CreateObject ( "WScript.Shell"); Var f3 = f1.Popup ( "Разбирате ли какъв е залогът?", 80 ", Защитен въпрос" 4 + 32); WScript.Echo (f3);


Избор на файл чрез проводник

Var objDialog = нов ActiveXObject ( "UserAccounts.CommonDialog '); objDialog.Filter = "WSH скриптове (* .vbs, * .js) | * .vbs; * JS | Всички файлове (*.) | * * .."; objDialog.InitialDir = "C"; Var intResult = objDialog.ShowOpen (); ако (intResult == 0) WScript.quit (); друго WScript.Echo (objDialog.FileName);


Определяне датата на инсталация на Windows


Направете звук (звуков сигнал) на високоговорителя.

Var WshShell = WScript.CreateObject ( "WScript.Shell"); WshShell.Run ( "% comspec% / в ехо" + String.fromCharCode (7), 0, вярно);


или една и съща на VBS

Определете WshShell = CreateObject ( "WScript.Shell") WshShell.Run "% comspec% / в ехо" Chr (7), 0, True


В следващия пример, WSH скрипт от черупка (CMD) причинява командата реж, и по-нататъшните процеси на резултатите от нейната работа. Самият пример за може би не е толкова интересен (макар че този проблем е да изберете файловете от папка на маската по дата не е толкова тривиално за сценария), но възможност стандартния вход обработка на, стандартния изход STDERR и открива допълнителни възможности.

Var ш = нов ActiveXObject ( "WScript.Shell '); Var ех = sh.Exec ( "CMD / в реж / B / O: -D" C:. \\ Windows \\ System32 \\ * сис " '); Var стандартния изход = []; Var STDERR = []; докато (вярно) ако (. ex.StdErr.AtEndOfStream) ако (ex.Status == 1) > WScript.Echo ( "\ nEXIT КОД: \ п '+ ex.ExitCode); WScript.Echo ( "\ nSTDERR: \ п '+ stderr.join (" \ п')); WScript.Echo ( "\ nSTDOUT: \ п '+ stdout.join (" \ п')); WScript.Quit ();


Друг пример за WSH скрипт, който да работи с и стандартния вход стандартния изход. Този път в VBS.

Задайте WshShell = CreateObject ( "WScript.Shell") Set WshExec = WshShell.Exec ( "Nslookup") Set в поток = WshExec.StdIn InStream.WriteLine "помощ" InStream.WriteLine "изход" Set OutStream = WshExec.StdOut ул = vbNullString Макар Не OutStream.AtEndOfStream ул = Str Trim (OutStream.ReadLine ()) Ул Wend MsgBox vbCrLf


Друг пример WSH скрипт, който работи външен параметър програма, и обработва изхода на програмата:


Ако в предишния пример с помощта на различни команди, а след това на руската локализацията може да бъде трудно, поради факта, че на изхода на командата се извършва в DOS кодиране. В този случай, ако е необходимо, на изхода линия трябва да се рекодират WIN (1251) кодиране. Ние се възползват от функцията написани на VBS.


Няколко примера за това как Windows Script Host (WSH), за да създадете преки пътища.

Var WshShell, myShortcut; // Създаване на обект WshShell WshShell = WScript.CreateObject ( "WScript.Shell"); // Определяне на пътя към pathDesktop на работния плот = WshShell.SpecialFolders ( "Desktop"); // Създаване на пряк път на myShortcut = WshShell.CreateShortcut (pathDesktop + "\\ notepad.lnk") на работния плот; // Определете пътя към myShortcut.TargetPath файла = WshShell.ExpandEnvironmentStrings ( "% Windir% \\ notepad.exe"); // Assign работа директория myShortcut.WorkingDirectory = "C: \\ температура"; // Посочете аргументи на командния ред myShortcut.Arguments = "D: \\ \\ myscript MakeShortcut.js"; // Изберете иконата на файла notepad.exe myShortcut.IconLocation на = "notepad.exe, 0"; // Съхранявайте myShortcut.Save етикет ();

Следващият пример показва как домакин на Windows Script (WSH) да създавате преки пътища до мрежови ресурси.


Няколко примера за това как Windows Script Host (WSH) да изпълнява заявки за Windows Management Instrumentation (WMI) и обработка на резултатите.


поискване Bit промяна) - и да получите списък на процесите на вашия компютър

// Свързване на локалния компютър на основата на WMI Var = GetObject ( "winmgmts:. \\\\ \\ корен \\ cimv2") ( ""). // извърши заявка за извличане на всички процеси на компютъра Var reswmi = root.ExecQuery ( "Изберете * от Win32_Process"); // Те взеха имена Var S = ""; за (Var ACC = нов Enumerator (reswmi) ;! acc.atEnd (); acc.moveNext ()) S = S + acc.item () Наименование + "\ п" .; WScript.Echo (и);


Следният пример WSH използвали заявката WMI получава списък на логически дискове. Да, WSH има свои собствени методи, за да направите това, и аз мисля, че те са по-подходящи за случая. То просто смята друга възможност.

// Свързване на локалния компютър на основата на WMI Var = GetObject ( "winmgmts:. \\\\ \\ корен \\ cimv2") ( ""). // Изпълнение на заявката на логически устройства на компютъра Var reswmi на = root.ExecQuery ( "Изберете * от Win32_LogicalDisk"); // Те взеха имена Var S = ""; за (Var ACC = нов Enumerator (reswmi) ;! acc.atEnd (); acc.moveNext ()) S = S + acc.item () DeviceID + "" + acc.item () VolumeName +. "" +. . acc.item () Описание + "". + acc.item () VolumeSerialNumber + "\ п"; WScript.Echo (и);


Пример на информация за операционната система. WSH + WMI.

// Свързване на локалния компютър на основата на WMI Var = GetObject ( "winmgmts:. \\\\ \\ корен \\ cimv2") ( ""). // изпълнение на заявката за получаване на информация за операционната система Var reswmi = root.ExecQuery ( "SELECT * ОТ Win32_OperatingSystem"); Var accitem; за (Var ACC = нов Enumerator (reswmi) ;! acc.atEnd (); acc.moveNext ()) accitem = acc.item (); Var S = 'кратко описание на версията на операционната система "+ accitem.Caption +" \ г \ п "+" система за натрупване броя на операционната' + accitem.BuildNumber + "\ г \ п" + "на номера на версията на операционната система" + accitem.Version + "\ R \ Н" + "на името на операционната система" + accitem.Name + "\ R \ Н" + "тип на операционната система:" + accitem.OSType + "\ R \ Н" + "версия на сервизния пакет + accitem.ServicePackMajorVersion + "\ R \ Н" + ", работещи при език система '+ accitem.OSLanguage +" \ R \ Н "+" област код, който използва операционната система' + accitem.CountryCode + "\ R \ Н" + " идентификатор език, използван от операционната система "+ accitem.Locale +" \ R \ Н "+" дата време инсталация "+ accitem.InstallDate +" \ R \ Н "+" име Comp серийни порта '+ accitem.CSName + "\ R \ Н" + "организация, която регистрирано на операционната система" + accitem.Organization + "\ R \ Н" + "сериен номер" + accitem.SerialNumber + "\ R \ Н" + 'регистриран потребител на операционната система "+ accitem.RegisteredUser +" \ R \ Н "+" часова зона; броя минути изоставане от времето по Гринуич "+ accitem.CurrentTimeZone +" \ R \ Н "+" дата + време на последното прехвърляне на '+ accitem.LastBootUpTime + "\ R \ н \ R \ Н"; WScript.Echo (и);

WSH + WMI. клас Win32_ComputerSystem

// Свързване на локалния компютър на основата на WMI Var = GetObject ( "winmgmts:. \\\\ \\ корен \\ cimv2") ( ""). Var reswmi = root.ExecQuery ( "SELECT * ОТ Win32_ComputerSystem"); Var accitem; за (Var ACC = нов Enumerator (reswmi) ;! acc.atEnd (); acc.moveNext ()) accitem = acc.item (); VAR S = "име на компютъра + accitem.Caption +" \ г \ п "+" домейн "+ accitem.Domain +" \ г \ п "+" роля на компютъра в областта; ако (accitem.DomainRole == 0) S + = 'Самостоятелен Workstation; ако (accitem.DomainRole == 1) S + = "държави Workstation; ако (accitem.DomainRole == 2) S + = "самостоятелен сървър; ако (accitem.DomainRole == 3) S + = "държави сървър; ако (accitem.DomainRole == 4) S + = 'архивиране домейн контролер "; ако (accitem.DomainRole == 5) S + = "Първичен контролер домейн; S + = '\ г \ п "; S + = 'всички физическата памет (байта) "+ accitem.TotalPhysicalMemory +" \ г \ п "; WScript.Echo (и);


Следващият пример използвате WMI WSH - за определяне на инсталираните кодеци.

За въпроси, дискусии, коментари, предложения и така нататък. Н. Можете да използвате форум секция на сайта (изисква регистрация).

Свързани статии

Подкрепете проекта - споделете линка, благодаря!