47

Какие языки сценариев полезны для автоматизации Windows?

9 ответов9

36
  1. PowerShell
  2. Windows Scripting Host
    а. VBScript
    б. JScript
  3. Пакетные файлы

PowerShell (v2.0)

Начиная с Windows 7 и Server 2008 целесообразно рассматривать PowerShell как поставляемый вместе с Windows, а также крайне важно администрировать серверное программное обеспечение, такое как Lync и Exchange, поскольку для них доступен целый набор команд. Растет список доступных функций, подробности см. В Центре сценариев .

Windows Scripting Host

Windows Script Host (WSH) технически является хостом сценариев для ActiveX Scripting Engine. VBScript и JScript (реализация JavaScript от Microsoft) являются двумя движками, установленными по умолчанию. Многие другие доступны с открытым исходным кодом, в том числе Perl, PHP и Ruby.

VBScript

Используя синтаксис, аналогичный VB6 и VB.NET, у VBScripts отсутствует простой доступ к классам .NET (Powershell написан на .NET, поэтому он имеет доступ ко всем функциям .NET). VBScript в основном использует преимущества сервиса WMI и объектов, которые он предоставляет.

Пример: это создает точку восстановления.

Set wmi, whatName, errResults
wmi = GetObject("winmgmts:\\.\root\default:Systemrestore")
whatName = InputBox("Enter a name for the Restore Point",WScript.ScriptName)
errResults = wmi.CreateRestorePoint (whatName, 12, 100)
If errResults <> 0 then
    Wscript.Echo "Error " & errResults & " : Unable to create Restore Point"
End If

JScript

Вы также можете написать тот же скрипт, используя ECMAScript:

var wmi = WScript.GetObject("winmgmts:\\.\root\default:Systemrestore");
var whatName = WSHInputBox("Enter a name for the Restore Point",Script.ScriptName);
var errResults = wmi.CreateRestorePoint(whatName, 12, 100);
if(errResults != 0) {
    WScript.Echo("Error "+ err + " : Unable to create Restore Point");
}

Командные файлы команд

Конечно, есть хороший старый пакетный файл. Им не нужно вступление.

16

Я до сих пор пишу командные файлы DOS, даже в Windows 7. Для большинства задач это все еще работает довольно хорошо, и с ним очень просто работать (также многие команды DOS, такие как "FOR", были улучшены с течением времени и предоставляют больше опций и функций, которые не были доступны более десяти лет) тому назад).

Для меня пакетный файл DOS по-прежнему является основным языком сценариев для Windows (он, безусловно, традиционный), но у каждого есть свои потребности и предпочтения, которые различаются. Есть много вещей, которые пакетные файлы DOS не могут сделать (языки сценариев также могут создавать ограничения), и в тех редких случаях, когда я сталкивался с этим, я затем смотрю, каковы другие мои варианты (часто это Perl, а иногда это может написать небольшую программу или целое приложение).

Понимание того, что вам нужно сделать, является очень важным шагом в принятии решения о том, какие инструменты использовать. Знакомство с инструментами - еще один важный аспект, который может ограничить ваши возможности. Если вы пытаетесь решить, какой язык сценариев [или программирования] изучать, то, надеюсь, это будет полезно для вас.

10

Это зависит от того, кого вы спрашиваете. Некоторые никогда не покинут партию, некоторые любят vbscript, некоторые любят PowerShell, другие любят AutoIt. Кроме того, существуют независимые от платформы, такие как Python и Perl, на которые некоторые будут ругаться.

4

Я бы сказал, AutoIt, он обеспечивает очень быструю и легкую разработку для окон и очень тесно связан с ним. Это означает, что задачи, которые обычно занимают довольно много кода на других языках, могут выполняться буквально одной строкой в autoit. Такие функции, как прямая компиляция в exe, также очень полезны.

4

Я предполагаю, что официальным языком сценариев для Windows будет (и был с Win95) Windows Script Host.

Технически, WSH - это не сам по себе язык, а скорее среда (не GUI), которая предоставляет COM- интерфейсы, чтобы позволить вам использовать (почти) любой язык сценариев, который вы хотите, для выполнения задач ОС, даже для вещей, которые не имеют встроенного способа, встроенного в язык (например, Ruby не имеет встроенного способа входа в Windows или TCL/TK не имеет встроенного способа отображения диалога Run).

Возможно, вы видели некоторые файлы WSF, которые могут содержать несколько языков в одном файле, но обычно сценарии WSH написаны на одном языке и распространяются с расширением, соответствующим версии сценария этого языка (например, VBS для сценариев VisualBasic, PYS для PythonScript и т.д. .)

2

Другие языки, указанные в этом вопросе (VbScript, PowerShell, Batch), очень популярны и поддерживаются. Если вы уже знаете язык сценариев и чувствуете себя комфортно с ним - в любом случае, соглашайтесь

Если вы собираетесь инвестировать в освоение нового языка, я бы предложил вам два языка в зависимости от работы, которую вы пытаетесь сделать:

JavaScript (через WSH) - используйте JavaScript, если вы хотите использовать различные объекты автоматизации, создавая их экземпляры и вызывая их объектную модель. Вы можете создать объект автоматизации практически для всего: от сервера Exchange до WMI и документов Office. В Visual Studio есть поддержка отладки (с аргументом /x). Кроме того, инвестиции в JavaScript окажутся полезными в HTML.

Perl - используйте Perl, если вы можете запускать другие программы, манипулировать их выводом, выполнять регулярные выражения. Хотя кажется, что этот язык в настоящее время находится в упадке, он все еще очень популярен, очень хорошо поддерживается большим языком сообщества. Вам также следует учитывать этот язык для взаимодействия с другими службами (не обязательно Windows), такими как JIRA на предприятии или EC2 на Amazon. Отладка поддерживается в Eclipse с EPIC, который также является хорошей средой IDE (окраска синтаксиса и т.д.). В CPAN есть модули для всего. Знание Perl окажется полезным при автоматизации на машинах, отличных от Windows.

1

Это может быть что угодно, в зависимости от того, что вы пытаетесь автоматизировать. Он будет варьироваться от командных файлов и PowerShell до autohotkey и Selenium (если вам нужно автоматизировать некоторые задачи, связанные с GUI).

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

1

Я рекомендую Perl, если вы хотите написать несколько сценариев Perl. Люди, с которыми я работаю, успешно использовали и рекомендуют CLR Script (немного устаревший) и для сценариев веб-взаимодействия iMacros.

1

В первые дни был VBScript, а затем Batch, в корпоративной среде с чистой Windows 7 и Server 2008 R2 новый язык сценариев Powershell привлекал большое внимание.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .