Windows에서 어떤 스크립팅 언어가 유용합니까? [닫은]


48

Windows 자동화에 유용한 스크립팅 언어는 무엇입니까?


10
나는 당신이 쓴 것 뒤에 숨어있는 흥미로운 질문을 볼 수 있기 때문에 +1을주었습니다. 그러나 "main"은 불행한 단어 선택으로, 모호하지 않게 편집해야한다고 생각합니다. 의미하는 바에 따라 "가장 일반적으로 사용", "최고 지원"또는 "권장"일 수 있습니다. 수퍼 유저에 오신 것을 환영합니다! :)
Brennan Vincent

2
@Brennan Vincent : 좋은 제안이지만,이 시점에서 "main"이라는 단어를 바꾸면 대답의 정신을 떨어 뜨릴 수 있습니다. 귀하의 의견은이 문제에 대해 많은 것을 말하고 있으며 질문은 그대로 남아있는 것이 좋습니다.
Randolf Richardson

1
현재이 질문은 주관적인 범주에 속한다고 생각합니다. 그러나 Brennan이 제안한 것처럼 문구를 약간 수정하면 꽤 흥미로운 커뮤니티 위키 항목이 될 수 있다고 생각합니다.
Joe Taylor

1
나에게도 주관적으로 보인다. 스크립팅 언어의 경우 "주"또는 "최고"또는 "선호"는 수행중인 특정 작업과 개인의 기술과 경험에 따라 다릅니다.
Iszi

3
나는 오늘날 Windows 기본 스크립팅 언어는 무엇인가? 즉, 어떤 스크립팅 언어가 API, ActiveX 등을 사용하여 작업을 수행하는 것과 달리 OS에 내장 된 후크 및 기능을 가지고 있는가?
Synetech

답변:


36
  1. PowerShell
  2. Windows 스크립팅 호스트
    a. VBScript
    b. JScript
  3. 배치 파일

PowerShell (v2.0)

Windows 7 및 Server 2008부터는 Windows와 함께 제공되는 PowerShell을 고려하는 것이 합리적이며 Lync 및 Exchange와 같은 서버 소프트웨어를 관리하는 것이 기본적입니다. 점점 더 많은 기능을 사용할 수 있습니다 . 자세한 내용 은 스크립트 센터 를 참조하십시오.

Windows 스크립팅 호스트

WSH (Windows Script Host)는 기술적으로 ActiveX 스크립팅 엔진의 스크립팅 호스트입니다. VBScript 및 JScript (Microsoft의 JavaScript 구현)는 기본적으로 설치되는 두 개의 엔진입니다. Perl, PHP 및 Ruby를 포함한 다른 많은 것들이 오픈 소스로 제공됩니다.

VBScript

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

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");
}

명령 배치 파일

물론 좋은 ol 'Batch File이 있습니다. 소개가 필요 없습니다.


7
Windows 7 및 Server 2008의 경우 Powershell 2.0
sshow

@sshow는 2.0에 대해 구체적으로 동의합니다
Nick Josevski

"그들은 소개가 필요 없습니다." 그러나 외교관 필요합니다 ...
glenn jackman

16

나는 여전히 Windows 7에서도 DOS 배치 파일을 작성합니다. 대부분의 작업에서 이것은 여전히 ​​잘 작동하며 매우 간단합니다. 또한 "FOR"과 같은 많은 DOS 명령은 시간이 지남에 따라 개선되어 더 많은 것을 제공합니다. 10 년 전에 제공되지 않은 옵션 및 기능).

나에게 DOS 배치 파일은 여전히 ​​Windows의 주요 스크립팅 언어이지만 (전통적으로 전통적이지만) 모든 사람은 필요와 선호도가 다릅니다. DOS 배치 파일로는 할 수없는 것들이 많으며 (스크립트 언어에도 제한이있을 수 있습니다), 드물게이 문제가 발생했을 때 다른 옵션이 무엇인지 살펴 봅니다 (종종 Perl 또는 때로는 작은 프로그램이나 전체 응용 프로그램을 작성해야합니다.

사용할 도구를 결정하는 데 필요한 단계를 이해하는 것이 매우 중요합니다. 도구에 대한 지식은 옵션을 제한 할 수있는 또 다른 중요한 측면입니다. 어떤 스크립팅 언어 (또는 프로그래밍)를 배우려고한다면 도움이 될 것입니다.


10
"메인"스크립팅 언어가 "가장 오래되고 가장 널리 사용됨"을 의미한다면 이것이 정답입니다. 그러나 cmd실제로는 불행히도, 내가 사용했던 불행한 최악의 셸 스크립팅 언어입니다.
JSB ձոգչ

3
다른 버전의 Windows에서 스크립트를 사용해야 할 경우 배치 파일도 사용합니다. Win7 / Server 2008 만 다루는 경우 PowerShell을 사용하는 것이 좋습니다.
jtreser

5
+1 나는 MS의 욕구가 될 PowerShell을 알고 그것을 하지만, 위해 지금 당신이 누군가에게 "창"을 실행하는 스크립트를 보내려면, 당신은 그들에게 DOS 배치 파일을 보낼 수 있습니다. PS는 특정 작업에 대한 특정 버전의 창에 적합하며 많은 힘을 제공하지만 배치 파일은 보편적입니다.
Alan Jackson

내가 현재 일하고있는 은행과 같은 일부 회사에서 집행 정책은 PS 스크립트가 실행되는 것을 방지합니다. 따라서 PS 스크립트를 번역하기 위해 배치를 배우고 있습니다. 따라서 배치가 여전히 필요한 상황이 있습니다 ...
T_D

2011 년 귀하의 답변에 동의했지만 Windows 10 Creators Update의 경우 Microsoft는 Win + X를 누르고 시작 메뉴에 'cmd'를 입력하고 탐색기에서 마우스 오른쪽 버튼을 클릭 할 때 Ctrl을 누른 상태에서 PowerShell을 기본값으로 설정했습니다. 따라서 Windows 10 Creators Update 및 BAT / CMD 레거시 스크립트 이후 Powershell을 Windows의 기본 스크립팅 언어로 생각합니다.
조나스

10

그것은 당신이 누구에게 물어 보느냐에 달려 있습니다. 일부는 배치를 떠나지 않을 것이고, 일부는 vbscript를, 일부는 파워 쉘을, 다른 일부는 AutoIt을 좋아하지 않을 것입니다. 그런 다음 Python 및 Perl과 같은 플랫폼 독립적 인 플랫폼이있어 일부는 모든 것에 대해 맹세합니다.


2
크로스 플랫폼 스크립팅 언어를 언급 한 +1 (Perl은 내가 가장 좋아하는 것으로, Python도 수년에 걸쳐 인기를 얻고 있음을 알고 있습니다).
Randolf Richardson

2
Perl의 경우 +1 많은 플랫폼에서 유용하며 일부 Windows 관련 모듈이 있습니다.
RedGrittyBrick

1
TinyPerl은 간단한 Perl 스크립트를 너무 많은 의존성으로 포함시키지 않는 매우 유용한 방법입니다. Windows에서는 작은 EXE 파일로 컴파일됩니다. tinyperl.sourceforge.net
Benoit

4

Windows 용 공식 스크립팅“language”는 Windows Script Host 일 것 입니다 ( Win95 이후) .

기술적으로 WSH 는 자체 언어가 아니라 COM 인터페이스를 노출 하여 환경 (GUI가 아님 )으로 원하는 스크립트 언어를 사용하고, OS 작업을 수행 할 수 있으며, 기본적으로 내장되어 있지 않은 것까지 사용할 수 있습니다. 언어 (예 : Ruby에 Windows에 로그인 할 수있는 기본 제공 방법이 없거나 TCL / TK에 실행 대화 상자를 표시하는 기본 제공 방법이 없음).

하나의 파일에 여러 언어를 포함 할 수있는 일부 WSF 파일을 보았을 수 있지만 일반적으로 WSH 스크립트는 한 언어로 작성되고 해당 언어의 스크립팅 버전 (예 : VisualBasic 스크립트의 경우 VBS, PythonScript의 경우 PYS 등)에 해당하는 확장명으로 배포됩니다. .)


나는 곤경에 빠졌다. IE에서 임의의 WSH 스크립트를 실행할 수 있다는 것을 알고 있습니까? 기이하지 않습니까? 그들이 웹에 너무 많은 API를 여는 방법이 좋습니다. (면책 조항이 냉소는 XP-SP3에 의해 일자)
ThorSummoner

WSH 및 IE에 대한 이야기는 실제로 그렇게 간단하지 않습니다. msdn.microsoft.com/en-us/library/bb250473 (v = vs.85) .aspx (보안 영역에 따라 제한의 한 가지 예) IE 11은 레거시 모드 이외의 다른 VBScript도 더 이상 지원하지 않습니다. WSH 스크립트를 실행하기 위해 IE에 의존하지 마십시오.
조나스

4

AutoIt은 Windows에서 매우 빠르고 쉬운 개발을 제공하며 매우 밀접하게 결합되어 있습니다. 이것은 일반적으로 다른 언어로 코드를 많이 사용하는 작업은 문자 그대로 한 줄로 수행 할 수 있음을 의미합니다. exe에 대한 직접 컴파일과 같은 기능도 매우 유용합니다.


단안경과 마찬가지로 AutoIt을 사용 합니다. 몇 분 안에 빠른 프로토 타이핑 및 테스트 개념까지 매우 다양합니다. 그중에서도 자동화를 위해 설계되었으므로 Powershell을 사용하는 사람들이 많이 있습니다. 시도해보십시오 :)
James

1
AutoIt 특히 UI 기능 (사용자가 대화 상자에 입력하거나 버튼을 누르는 등의 역할을하는)의 경우에는 매우 멋지지만 "메인"Windoze 스크립팅 언어로 호출하는 것은 상당히 확장 적입니다. 요즘 대부분의 동료 (20 명 이상의 Windows 관리자 팀)는 그 소식을 듣지 못했습니다.
ewall

2

이 질문에서 지적한 다른 언어 (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 이외의 시스템에서 자동화를 수행해야 할 때 유용합니다.


1
파이썬은 펄에 대한 훌륭한 대안이지만, 둘을 사용하는 것은 거의 동일합니다
Phoshi

1

초기에는 VBScript와 Batch가 있었고, Windows 7과 Server 2008 R2의 기업 환경에서 새로운 스크립팅 언어 인 Powershell이 ​​많은 관심을 끌고있었습니다.


PowerShell이 ​​인수하려는 열망을 표현하고있는 것 같습니다. PowerShell을 "원한다"고 가정하는 것이 공정합니까? ;-D
Randolf Richardson

나는 vbscript보다 powershell을 선호합니다.
EKS


1

자동화하려는 내용에 따라 거의 모든 것이 될 수 있습니다. 배치 파일 및 PowerShell에서 autohotkey 및 Selenium에 이르기까지 다양합니다 (GUI 관련 작업을 자동화해야하는 경우).

수정 사항을 추가하거나 이미 작성된 스크립트를 지원해야하는 경우 일반적으로 학습하는 것은 문제가되지 않습니다. 새로운 것을 개발해야하는 경우 요구 사항과 이미 알고있는 것을 기반으로 언어 / 방법을 선택하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.