Windows 자동화에 유용한 스크립팅 언어는 무엇입니까?
Windows 자동화에 유용한 스크립팅 언어는 무엇입니까?
답변:
Windows 7 및 Server 2008부터는 Windows와 함께 제공되는 PowerShell을 고려하는 것이 합리적이며 Lync 및 Exchange와 같은 서버 소프트웨어를 관리하는 것이 기본적입니다. 점점 더 많은 기능을 사용할 수 있습니다 . 자세한 내용 은 스크립트 센터 를 참조하십시오.
WSH (Windows Script Host)는 기술적으로 ActiveX 스크립팅 엔진의 스크립팅 호스트입니다. VBScript 및 JScript (Microsoft의 JavaScript 구현)는 기본적으로 설치되는 두 개의 엔진입니다. Perl, PHP 및 Ruby를 포함한 다른 많은 것들이 오픈 소스로 제공됩니다.
VB6 및 VB.NET과 유사한 구문을 사용하여 VBScript는 .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");
}
물론 좋은 ol 'Batch File이 있습니다. 소개가 필요 없습니다.
나는 여전히 Windows 7에서도 DOS 배치 파일을 작성합니다. 대부분의 작업에서 이것은 여전히 잘 작동하며 매우 간단합니다. 또한 "FOR"과 같은 많은 DOS 명령은 시간이 지남에 따라 개선되어 더 많은 것을 제공합니다. 10 년 전에 제공되지 않은 옵션 및 기능).
나에게 DOS 배치 파일은 여전히 Windows의 주요 스크립팅 언어이지만 (전통적으로 전통적이지만) 모든 사람은 필요와 선호도가 다릅니다. DOS 배치 파일로는 할 수없는 것들이 많으며 (스크립트 언어에도 제한이있을 수 있습니다), 드물게이 문제가 발생했을 때 다른 옵션이 무엇인지 살펴 봅니다 (종종 Perl 또는 때로는 작은 프로그램이나 전체 응용 프로그램을 작성해야합니다.
사용할 도구를 결정하는 데 필요한 단계를 이해하는 것이 매우 중요합니다. 도구에 대한 지식은 옵션을 제한 할 수있는 또 다른 중요한 측면입니다. 어떤 스크립팅 언어 (또는 프로그래밍)를 배우려고한다면 도움이 될 것입니다.
cmd
실제로는 불행히도, 내가 사용했던 불행한 최악의 셸 스크립팅 언어입니다.
그것은 당신이 누구에게 물어 보느냐에 달려 있습니다. 일부는 배치를 떠나지 않을 것이고, 일부는 vbscript를, 일부는 파워 쉘을, 다른 일부는 AutoIt을 좋아하지 않을 것입니다. 그런 다음 Python 및 Perl과 같은 플랫폼 독립적 인 플랫폼이있어 일부는 모든 것에 대해 맹세합니다.
Windows 용 공식 스크립팅“language”는 Windows Script Host 일 것 입니다 ( Win95 이후) .
기술적으로 WSH 는 자체 언어가 아니라 COM 인터페이스를 노출 하여 환경 (GUI가 아님 )으로 원하는 스크립트 언어를 사용하고, OS 작업을 수행 할 수 있으며, 기본적으로 내장되어 있지 않은 것까지 사용할 수 있습니다. 언어 (예 : Ruby에 Windows에 로그인 할 수있는 기본 제공 방법이 없거나 TCL / TK에 실행 대화 상자를 표시하는 기본 제공 방법이 없음).
하나의 파일에 여러 언어를 포함 할 수있는 일부 WSF 파일을 보았을 수 있지만 일반적으로 WSH 스크립트는 한 언어로 작성되고 해당 언어의 스크립팅 버전 (예 : VisualBasic 스크립트의 경우 VBS, PythonScript의 경우 PYS 등)에 해당하는 확장명으로 배포됩니다. .)
AutoIt은 Windows에서 매우 빠르고 쉬운 개발을 제공하며 매우 밀접하게 결합되어 있습니다. 이것은 일반적으로 다른 언어로 코드를 많이 사용하는 작업은 문자 그대로 한 줄로 수행 할 수 있음을 의미합니다. exe에 대한 직접 컴파일과 같은 기능도 매우 유용합니다.
이 질문에서 지적한 다른 언어 (VbScript, PowerShell, Batch)는 매우 널리 사용되고 지원됩니다. 스크립팅 언어를 이미 알고 있고 편안하게 느끼는 경우에는 그 언어를 사용하십시오.
새로운 언어를 선택하는 데 투자하려고한다면, 당신이하려는 일에 따라 두 가지 언어를 제안합니다.
JavaScript (WSH를 통해) -다양한 자동화 객체를 인스턴스화하고 객체 모델을 호출하여 사용하려면 JavaScript를 사용하십시오. Exchange 서버에서 WMI, Office 문서에 이르기까지 거의 모든 것에 대한 자동화 개체를 만들 수 있습니다. Visual Studio에는 디버그 지원 (/ x 인수 사용)이 있습니다. 또한 JavaScript에 대한 투자는 HTML에 유용하다는 것이 입증되었습니다.
Perl- 다른 프로그램을 실행하고 출력을 조작하고 정규식을 수행 할 수있는 경우 Perl을 사용하십시오. 비록이 언어가 현재 쇠퇴하고있는 것 같지만, 여전히 큰 인기를 얻고 있으며 큰 공동체 언어로 잘 지원됩니다. 또한 엔터프라이즈의 JIRA 또는 Amazon의 EC2와 같은 다른 서비스 (Windows 일 필요는 없음)와의 통신을 위해이 언어를 고려해야합니다. 디버깅은 EPIC을 사용하여 일식에서 지원되며, IDE 환경 (구문 채색 등)도 좋습니다. CPAN에는 모든 것을위한 모듈이 있습니다. Perl 지식은 Windows 이외의 시스템에서 자동화를 수행해야 할 때 유용합니다.
초기에는 VBScript와 Batch가 있었고, Windows 7과 Server 2008 R2의 기업 환경에서 새로운 스크립팅 언어 인 Powershell이 많은 관심을 끌고있었습니다.
Perl 스크립트를 작성하는 경우 Perl에 대한 권장 사항을 두 번째로 제시합니다. 내가 일하는 사람들은 CLR 스크립트 (약간 오래된)를 성공적으로 사용하고 추천 했으며 웹 상호 작용 스크립팅을 위해 iMacros를 추천했습니다.