Windows 스크립트 파일
Windows Script File파일 이름 확장자 | .wsf |
---|---|
인터넷 미디어 유형 | 텍스트/xml |
개발자 | 마이크로소프트 |
포맷의 종류 | 스크립트 작성 |
컨테이너: | 스크립트 |
Windows Script File(WSF; Windows 스크립트 파일)은 Microsoft가 사용하는 파일 형식입니다.Windows 스크립트호스트스크립트 언어를 혼재시킬 수 있습니다.단일 파일 내의 JScript 및 VBScript 또는 사용자가 설치한 경우 Perl, Object REXX, Python, Kixtart 등의 기타 스크립트 언어.이러한 유형의 스크립트를 사용하여 다른 많은 외부 스크립트를 링크할 때도 사용할 수 있습니다.src
의 파라미터<script>
HTML과 유사한 방식으로 태그를 지정합니다. Windows 스크립트 파일에는 확장자가 있습니다.".WSF"
WSF는 다음과 같이 기본적인 XML 계층의 각 스크립트모듈을 참조합니다.이러한 규격은 외부 표준에 준거하고 있습니다.<script>
태그. "의 문자 그대로 사용</script>
" 또는<script>
"내부에는<script>
예에 나타난 바와 같이 태그 및 유사한 과제는 CDATA를 사용하여 처리할 수 있습니다.
오류 분리
WSF 는, 에러를 특정하는데 도움이 되는 경우가 있습니다.모듈러형 특성상 어떤 스크립트 참조가 다른 스크립트 참조와 간섭하는 것을 방지합니다.다음으로 오류를 발생시키는 모듈과 발생하지 않는 모듈을 포함하는 WSF의 예를 나타냅니다.
<?xml version="1.0" ?> <job id="Partially works"> <!--이것은 동작하지 않습니다 --> <스크립트 언어="VBScript"> <![ CDATA [ WScript . echo 4 / 0 ]어머나! 0으로 나눌 수 없어...[ ] > < / script ><!--이 동작합니다... 확실히...> <스크립트 언어=>VBScript"> <![CDATA[WScript.echo "안녕하세요 스크립터!" & vbNewline & _ "멋져요! 동작했다!" ' ] > </script> </job>
첫 번째 스크립트 모듈에서 "0으로 나누기" 오류가 발생합니다.일반적으로 이 경우 스크립트는 Windows Script Host로 종료되지만 이 모듈러 방식에서는 스크립트가 두 번째 스크립트모듈을 계속 실행하여 실행할 수 있습니다.
혼합 언어 지원
윈도우즈 스크립트 파일은 윈도우즈 스크립트 호스트 참조에 설명된 대로 여러 언어를 지원합니다.이 파일 형식의 기능 중 하나는 여러 개를 동시에 사용할 수 있다는 것입니다.즉, 어떤 스크립트 언어 사용 코드를 다른 스크립트 언어에서 사용할 수 있습니다.오랜 시간 VBScript 사용자에게 가장 기억에 남는 예는 Microsoft JScript를 사용하여 VBScript의 정렬 요청을 처리하는 것입니다.이는 값 배열에 대한 정렬 함수가 내장되어 있지 않기 때문입니다.VBScript 사용자는 독자적인 정렬 방식을 작성하거나 ADO(ActiveX Data Objects) 레코드 세트 또는 와 같은 기존 개체에서 정렬 방식을 빌릴 수 있습니다.NET(.NET Framework) ArrayList. 단, 어레이를 정렬하는 가장 빠른 방법은 JScript에 내장된 메서드를 사용하는 것입니다.다음으로 동작의 기본적인 예를 제시하겠습니다.
<?xml version="1.0" ?> <!--JScript와 VBScript의 혼재 --> <작업> id=「SORT-VBScript WithJScript"> <스크립트> 언어="J스크립트"> 기능. 정렬 VBAray(arrVBAray) {돌아가다 arrVBAray.어레이().종류();} </script> <스크립트> 언어="VBScript"> <![CDATA] '** 가장 빠른 정렬: VBScript에서 Jscript 정렬 호출 마이 데이터 = "a,b,c,1,2,3,X,Y,Z,p,d,q" 스크립트.메아리치다 "원래 값 목록: " & vb탭 & 마이 데이터 개시 시각 = 타이머() 정렬 배열 = 정렬 VBAray(분열되다(마이 데이터,",")) 종료 시간=타이머() jscript Time(jscript Time) = 둥글다(종료 시간-개시 시각,2) 스크립트.메아리치다 "J스크립트 정렬" & jscript Time(jscript Time) & "초: " & vb탭 & 정렬 배열 ' ] > </script> </job>
출력은 ASCII 코드시퀀스별로 정렬되어 다음과 같습니다.
원래 값 목록: a,b,c,1,2,3,X,Y,Z,p,d,q 0초 만에 정렬된 JScript: 1,2,3,X,Y,Z,a,b,c,d,p,q
노출 상수
WSF의 또 다른 매우 유용한 기능은 XML 래퍼를 오브젝트 참조 또는 컨트롤에 바인드할 수 있기 때문에 선언할 필요 없이 오브젝트의 상수를 사용할 수 있다는 것입니다.일반 VBScript 및 JScript 파일에서는 상수를 사용하려면 상수의 값(Windows 스크립트호스트 내부의 값 이외)을 선언해야 합니다.그 예를 다음에 나타냅니다.
컨스턴트 adLockBatchOptimistic = 4 메시지 박스 adLockBatchOptimistic의 가치는 & _ adLockBatchOptimistic & ".", vb 정보,"adLockBatchOptimistic"
오브젝트 문서에서 상수 이름만 참조하고 상수 값은 참조하지 않는 경우 통합 개발 환경의 도움 없이는 값을 알 수 없습니다.WSF 참조 선언을 사용하면 값을 선언하지 않고 상수를 사용할 수 있습니다.다음 예제에서는 ADO(ActiveX Data Objects) 레코드 세트에 있는 몇 가지 공통 상수 값을 열거합니다.
<?xml version="1.0" ?> <!-- WSF 예와 오브젝트 레퍼런스 노트: XML 파서가 스크립트 내용에 포함된 특수 문자를 무시하기 위해 CDATA를 사용합니다. CDATA 열기 및 닫기는 코멘트로 하여 VBScript에서 마스킹해야 합니다. --> <job id="EnumerateConstants"ADO"> <reference object="ADODB.Recordset" /> <스크립트 언어=>VBScript">,의<>![CDATA는 경우에는 희미한 제목, 공백이 나는))Array("adOpenUnspecified","adOpenForwardOnly", 즉"adOpenKeyset","adOpenDynamic","adOpenStatic")제목"Constants을 ADORecordset 가치"이)제목 아는 ctecArray, vbNewLine &,vbNewLine이)이&"*CursorTypeEnum Constants*"&vbNewLine 들어 나는 0ubound(ctecArray)에 초기 조향 순간이)str &am.p/&EVal(ctecArray(나는))&vbTab&ctecArray(나는)&다음이)이 아는 vbNewLine,vbNewLine이)이&"*LockTypeEnum Constants*"&vbNewLine ltecArray)Array("adLockUnspecified","adLockReadOnly", 즉"adLockPessimistic","adLockOptimistic", 즉"adLockBatchOptimistic") 들어 나는 0으로 ubound(ltecAr 일고 있다.레이)이)이&Eval(lt.ecArray(i) & vbTab & ltecArray(i) & vbNewLine 다음 MsgBox str, vbInformation, Title ' ] > </script> </job> </package>
위의 스크립트를 다음 파일이 포함된 파일에서 실행".WSF"
내선번호(예:"EnumerateConstantsADO.wsf"
는 다음과 같은 결과를 생성합니다.
상수에 대한 ADO 레코드 집합 값 *CursorTypeEnum 상수* - 1 adOpenUnspecified 0 adOpenForward만 adOpenKeyset×1 adOpenDynamic x 2 3 adOpenStatic *LockTypeEnum 상수* - 1 adLock Unspecified (지정되지 않음) 1 adLockReadOnly 2 adLockPessimistic 3 adLockOptimistic 4 adLockBatchOptimistic
또한 오브젝트 참조를 사용하여 상수를 표시하면 스크립트를 표준 프로그래밍 언어로 쓰는 것과 비슷해집니다.실제로 샘플 스크립트의 내용은 VBScript로 작성되어 Visual Basic 프로그램으로 컴파일되어 프로그램이 ADODB에 대한 동일한 참조를 사용하는 한 동일하게 실행됩니다.