Какие языки сценариев полезны для автоматизации Windows?
Какие языки сценариев полезны для автоматизации Windows?
Ответы:
Начиная с Windows 7 и Server 2008 целесообразно рассматривать PowerShell, поскольку он поставляется вместе с Windows, и это также важно для администрирования серверного программного обеспечения, такого как Lync и Exchange, поскольку для них доступен целый набор команд. Растет список доступных функций, подробности см. В Центре сценариев .
Windows Script Host (WSH) технически является сценарием для ActiveX Scripting Engine. VBScript и JScript (реализация JavaScript от Microsoft) являются двумя движками, установленными по умолчанию. Многие другие доступны с открытым исходным кодом, в том числе Perl, PHP и Ruby.
Используя синтаксис, аналогичный 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
Вы также можете написать тот же скрипт, используя 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");
}
Конечно, есть хороший старый пакетный файл. Им не нужно вступление.
Я до сих пор пишу командные файлы DOS, даже в Windows 7. Для большинства задач это все еще работает довольно хорошо, и с ним очень просто работать (кроме того, многие команды DOS, такие как «FOR», были улучшены с течением времени и предоставляют больше возможностей). опции и функциональность, которые не были доступны более десяти лет назад).
Для меня пакетный файл DOS по-прежнему является основным языком сценариев для Windows (он, безусловно, традиционный), но у каждого есть свои потребности и предпочтения, которые различаются. Есть много вещей, которые DOS-файлы не могут сделать (языки сценариев могут также создавать ограничения), и в тех редких случаях, когда я сталкивался с этим, я затем смотрю, каковы другие мои варианты (часто это Perl, а иногда это может написать небольшую программу или целое приложение).
Понимание того, что вам нужно сделать, является очень важным шагом в принятии решения о том, какие инструменты использовать. Знакомство с инструментами - еще один важный аспект, который может ограничить ваши возможности. Если вы пытаетесь решить, какой язык сценариев [или программирования] изучать, то, надеюсь, это будет полезно для вас.
cmd
действительно чудовищный, просто самый худший язык сценариев оболочки, который я когда-либо имел несчастье использовать.
Это зависит от того, кого вы спрашиваете. Некоторые никогда не выйдут из партии, некоторые любят vbscript, некоторые любят PowerShell, другие любят AutoIt. Кроме того, есть независимые от платформы, такие как Python и Perl, на которые некоторые будут ругаться.
Я предполагаю, что официальным языком сценариев для Windows будет (и был с Win95) Windows Script Host .
Технически, WSH - это не сам по себе язык, а скорее среда (не GUI), которая предоставляет COM- интерфейсы, чтобы позволить вам использовать (почти) любой язык сценариев, который вы хотите, для выполнения задач ОС, даже для вещей, не имеющих встроенного способа, встроенного в язык (например, Ruby не имеет встроенного способа входа в Windows или TCL / TK не имеет встроенного способа отображения диалога Run).
Возможно, вы видели некоторые файлы WSF, которые могут содержать несколько языков в одном файле, но обычно сценарии WSH написаны на одном языке и распространяются с расширением, соответствующим версии сценария этого языка (например, VBS для сценариев VisualBasic, PYS для PythonScript и т. Д. .)
Я бы сказал, AutoIt, он обеспечивает очень быструю и простую разработку для окон и очень тесно связан с ним. Это означает, что задачи, которые обычно занимают довольно много кода на других языках, могут быть выполнены буквально одной строкой в autoit. Такие функции, как прямая компиляция в exe, также очень полезны.
Другие языки, указанные в этом вопросе (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.
Вначале был VBScript, а затем Batch, в корпоративной среде с чистой Windows 7 и Server 2008 R2 новый язык сценариев Powershell привлекал большое внимание.
Я рекомендую Perl, если вы хотите написать несколько скриптов Perl. Люди, с которыми я работаю, успешно использовали и рекомендуют CLR Script (немного устаревший), а также для сценариев веб-взаимодействия iMacros
Это может быть что угодно, в зависимости от того, что вы пытаетесь автоматизировать. Он будет варьироваться от командных файлов и PowerShell до autohotkey и Selenium (если вам нужно автоматизировать некоторые задачи, связанные с графическим интерфейсом).
Обычно это не проблема, если вы хотите добавить некоторые модификации или поддержать уже написанные скрипты. Если вам нужно разработать что-то новое - выберите язык / способ исходя из требований и того, что вы уже знаете.