Jakie języki skryptowe są przydatne do automatyzacji systemu Windows?
Jakie języki skryptowe są przydatne do automatyzacji systemu Windows?
Odpowiedzi:
Począwszy od systemów Windows 7 i Server 2008, rozsądne jest rozważenie programu PowerShell w wersji dostarczanej z systemem Windows, a także fundamentalne jest administrowanie oprogramowaniem serwera, takim jak Lync i Exchange, ponieważ dostępny jest dla nich cały zestaw poleceń. Dostępna jest rosnąca lista funkcji, szczegółowe informacje można znaleźć w Centrum skryptów .
Windows Script Host (WSH) jest technicznie hostem skryptów dla silników skryptowych ActiveX. VBScript i JScript (implementacja JavaScriptu przez Microsoft) to dwa silniki instalowane domyślnie. Wiele innych jest dostępnych jako open source, w tym Perl, PHP i Ruby.
Używając podobnej składni jak VB6 i VB.NET, skrypty VBScript nie mają łatwego dostępu do klas .NET (Powershell jest napisany w .NET, więc ma dostęp do wszystkich funkcji .NET). VBScript w większości korzysta z usługi WMI i obiektów, które udostępnia.
Przykład: tworzy punkt przywracania.
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
Możesz także napisać ten sam skrypt za pomocą 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");
}
Jest oczywiście dobry stary plik wsadowy. Nie potrzebują wstępu.
Nadal piszę pliki wsadowe DOS, nawet w systemie Windows 7. W przypadku większości zadań nadal działa to całkiem dobrze i jest bardzo proste w obsłudze (również wiele poleceń DOS, takich jak „FOR”, zostało z czasem ulepszonych i zapewnia więcej opcje i funkcje, które nie były dostępne ponad dziesięć lat temu).
Dla mnie plik wsadowy DOS jest nadal głównym językiem skryptowym dla Windows (z pewnością jest tradycyjny), ale każdy ma inne potrzeby i preferencje. Jest wiele rzeczy, których pliki wsadowe DOS nie mogą zrobić (języki skryptowe również mogą stanowić ograniczenia), a na rzadkie okazje, w których się z tym spotkałem, sprawdzam, jakie są moje inne opcje (często jest to Perl, a czasem może napisać mały program lub całą aplikację).
Zrozumienie, co należy osiągnąć, jest bardzo ważnym krokiem przy podejmowaniu decyzji, których narzędzi użyć. Znajomość narzędzi to kolejny ważny aspekt, który może ograniczyć twoje możliwości. Jeśli próbujesz zdecydować, którego języka skryptowego [lub programowania] się uczyć, mam nadzieję, że będzie to pomocne.
cmd
naprawdę jest to potworność, łatwo WORST język skryptowy powłoki, którego kiedykolwiek miałem nieszczęście użyć.
To zależy od tego, kogo zapytasz. Niektórzy nigdy nie opuszczą partii, inni uwielbiają vbscript, a niektóre PowerShell, inni jak AutoIt. Są też niezależne od platformy, takie jak Python i Perl, które niektórzy przysięgną na wszystko.
Przypuszczam, że oficjalnym „językiem” skryptowym dla Windows byłby (i jest od Win95) Windows Script Host .
Technicznie rzecz biorąc, WSH nie jest językiem samym w sobie, ale raczej środowiskiem (nie GUI), które udostępnia interfejsy COM , aby umożliwić ci używanie (prawie) dowolnego języka skryptowego, który chcesz, do robienia rzeczy w systemie operacyjnym, nawet rzeczy, które nie są wbudowane w natywny sposób język (na przykład Ruby nie ma wbudowanego sposobu logowania do systemu Windows lub TCL / TK nie ma wbudowanego sposobu wyświetlania okna dialogowego Uruchom).
Być może widziałeś niektóre pliki WSF, które mogą zawierać wiele języków w jednym pliku, ale zwykle skrypty WSH są pisane w jednym języku i dystrybuowane z rozszerzeniem odpowiadającym wersji skryptowej tego języka (np. VBS dla skryptów VisualBasic, PYS dla PythonScript itp. .)
Powiedziałbym, że AutoIt zapewnia bardzo szybki i łatwy rozwój w systemie Windows i jest z nim bardzo ściśle związany. Oznacza to, że zadania, które zwykle zajmują dość dużo kodu w innych językach, można wykonać dosłownie w jednym wierszu w programie autoit. Bardzo przydatne są również takie funkcje, jak bezpośrednia kompilacja do plików exe.
Inne języki wskazane w tym pytaniu (VbScript, PowerShell, Batch) są bardzo popularne i obsługiwane. Jeśli znasz już język skryptowy i czujesz się komfortowo - w każdym razie idź z tym.
Jeśli masz zamiar zainwestować w wybranie nowego języka, proponuję dla ciebie dwa języki, w zależności od pracy, którą próbujesz wykonać:
JavaScript (przez WSH) - użyj JavaScript, jeśli chcesz używać różnych obiektów automatyzacji, tworząc je i wywołując ich model obiektów. Możesz utworzyć obiekt automatyzacji dla prawie wszystkiego, od serwera Exchange, przez WMI, po dokumenty Office. Istnieje obsługa debugowania w Visual Studio (z argumentem / x). Również inwestycja w JavaScript okaże się przydatna w HTML.
Perl - użyj Perla, jeśli możesz uruchamiać inne programy, manipulować ich danymi wyjściowymi, wykonywać wyrażenia regularne. Chociaż wydaje się, że ten język jest obecnie w fazie upadku, nadal jest bardzo popularny, bardzo dobrze obsługiwany przez duży język społeczności. Należy również wziąć pod uwagę ten język do komunikowania się z innymi usługami (niekoniecznie Windows), takimi jak JIRA w przedsiębiorstwie lub EC2 w Amazon. Debugowanie jest obsługiwane w środowisku eclipse z EPIC, które jest również dobrym środowiskiem IDE (kolorowanie składni itp.). W CPAN są moduły do wszystkiego. Znajomość języka Perl okaże się przydatna podczas automatyzacji na komputerach innych niż Windows.
Na początku pojawił się VBScript, a następnie Batch, w środowisku korporacyjnym z czystym Windows 7 i Server 2008 R2 nowy język skryptowy Powershell cieszy się dużym zainteresowaniem.
Popieram zalecenie dla Perla, jeśli masz zamiar napisać kilka skryptów Perla. Osoby, z którymi pracuję, z powodzeniem wykorzystują i polecają CLR Script (nieco stary), a do obsługi skryptów interakcji z Internetem - iMacros
Może to być prawie wszystko, w zależności od tego, co próbujesz zautomatyzować. Będzie się różnić od plików wsadowych i programu PowerShell po autohotkey i Selenium (jeśli musisz zautomatyzować niektóre zadania związane z GUI).
Zazwyczaj nauczenie się tego nie stanowi problemu, jeśli trzeba dodać jakieś modyfikacje lub wesprzeć już napisane skrypty. Jeśli potrzebujesz opracować coś nowego - wybierz język / sposób na podstawie wymagań i tego, co już wiesz.