Які мови сценаріїв корисні для автоматизації Windows?
Які мови сценаріїв корисні для автоматизації Windows?
Відповіді:
Що стосується Windows 7 та Server 2008, розумно розглядати PowerShell при постачанні з Windows, а також важливо адмініструвати серверне програмне забезпечення, таке як Lync та Exchange, оскільки для них існує цілий набір команд. Зростає список доступних функцій, детальну інформацію див. У Центрі сценаріїв .
Хост сценаріїв Windows (WSH) технічно є хост сценаріїв для ActiveX Scripting Engine. VBScript та JScript (реалізація JavaScript JavaScript) - це два двигуни, встановлені за замовчуванням. Багато інших доступних як відкритий код, включаючи 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, деякі люблять повноваження, інші люблять AutoIt. Потім є незалежні платформи, такі як Python та Perl, які деякі присягатимуться за все.
Я вважаю, що офіційною мовою сценаріїв для Windows буде (та є з Win95) хост сценарію Windows .
Технічно WSH - це не сама мова, а навколишнє середовище (не GUI), яке розкриває COM- інтерфейси, щоб дозволити вам використовувати (майже) будь-яку мову сценаріїв, яку ви хочете, робити операції з ОС, навіть речі, які не мають вбудованого способу в мова (наприклад, у Ruby немає вбудованого способу входу в Windows або TCL / TK не має вбудованого способу відображення діалогового вікна Run).
Можливо, ви бачили деякі файли WSF, які можуть містити кілька мов в одному файлі, але зазвичай WSH-сценарії написані однією мовою та розповсюджені з розширенням, що відповідає версії сценарію цієї мови (наприклад, VBS для скриптів VisualBasic, PYS для PythonScript тощо) .)
Я б сказав, що це AutoIt, він забезпечує дуже швидкий і простий розвиток у Windows і дуже щільно поєднується з ним. Це означає, що завдання, які зазвичай займають досить багато коду в інших мовах, можуть виконуватися буквально в одному рядку під час автоматичної роботи. Такі функції, як пряма компіляція до EXE, також дуже корисні.
Інші мови, вказані в цьому питанні (VbScript, PowerShell, Batch), дуже популярні та підтримуються. Якщо ви вже знаєте мову сценаріїв і відчуваєте себе комфортно - будь-яким чином перейдіть до цього.
Якщо ви збираєтесь інвестувати гроші в нову мову, я пропоную вам дві мови, залежно від роботи, яку ви намагаєтеся зробити:
JavaScript (через WSH) - використовуйте JavaScript, якщо ви хочете використовувати різні об'єкти автоматизації, ініціюючи їх, і зателефонувавши до їх об'єктної моделі. Ви можете створити об’єкт автоматизації для майже всього, від сервера Exchange до WMI до документів Office. Існує підтримка налагодження з Visual Studio (з аргументом / x). Також інвестиція в JavaScript виявиться корисною в HTML.
Perl - використовуйте Perl, якщо ви можете запускати інші програми, маніпулювати їх результатами, виконувати регулярні вирази. Хоча здається, що ця мова наразі занепадає, вона все ще є дуже популярною, дуже добре підтримуваною мовою великої спільноти. Ви також повинні розглянути цю мову для спілкування з іншими службами (не обов'язково Windows), такими як JIRA на підприємстві або EC2 на Amazon. Налагодження підтримується в затемненні з EPIC, що також є хорошим середовищем IDE (забарвлення синтаксису тощо). У CPAN є модулі для всього. Знання Perl виявляться корисними, коли доводиться робити автоматизацію на машинах, що не працюють з Windows.
У перші дні з'явився VBScript, а за ним - Batch, в корпоративному середовищі з чистою системою Windows 7 і Server 2008 R2 нова мова сценаріїв Powershell викликає багато уваги.
Я друге рекомендую для Perl, якщо ви збираєтеся написати деякі сценарії Perl. Люди, з якими я працюю, успішно використовували та рекомендують сценарій CLR (трохи старий), а для сценаріїв веб-взаємодії - iMacros
Це може бути майже все, залежно від того, що ви намагаєтеся автоматизувати. Він буде відрізнятися від пакетних файлів та PowerShell до автоматичної клавіші та Selenium (якщо вам потрібно автоматизувати деякі завдання, пов'язані з графічним інтерфейсом).
Зазвичай вивчити це не проблема, якщо вам потрібно додати деякі модифікації або підтримати вже написані сценарії. Якщо вам потрібно розробити щось нове - вибирайте мову / спосіб на основі вимог та того, що ви вже знаєте.