2012-08-04 2 views
1

PowerShell에서 클래스를 만들어 하나의 클래스에 모든 폼 개체를 넣을 수 있고 버튼을 두 번째 클래스에서 클릭하고 세 번째 클래스에서 함수를 가질 수 있습니까?PowerShell : 클래스 만들기

코드 줄 수가 900 줄을 약간 넘는 스크립트 (+ GUI)가 있지만 코드를 주석으로 구분 된 세 개의 다른 블록으로 나누었더라도 약간 관리하기가 어렵습니다. 섹션이 함수, 폼 및 click_events 인 경우), click_event에 함수를 추가하려면 스크립트 상단에서 맨 아래로 스크롤해야한다는 것을 의미합니다.

답변

3

당신이 libary의 개념을 찾고 있다면.

도트 소스 .ps1 파일 here과 같이 도트 소스를 사용할 수 있습니다. here과 같이 모듈 .psm1 파일 (필수는 아니지만 더 나은 승인 기호는 아닙니다)을 만들 수 있습니다.

도트 소싱은 PowerShell 1.0에서 제공되는 구식입니다. Powershell 2.0은 관리가 용이하고 실제로 라이브러리 개념 (스크립트, 바이너리)을 가져 오는 모듈을 제공합니다.

이제 다른 스크립트간에 라이브러리를 재사용하는 것에 대해 생각해보십시오.

+0

동의합니다. 내 psm1 파일에서 내 지원 ps1 파일을로드 할 때 소싱을 사용합니다. 내 모든 기능을 별도의 파일로 분해하는 것을 선호합니다. 특히 스크립트의 동일한 세트에서 다른 스크립터와 작업 할 때 더 쉽게 관리 할 수 ​​있습니다. –

+0

감사합니다. 나는 두 개의 별도 .psm1 파일에 함수와 click_events를 넣고 모듈을 만들었습니다. 하나의 모듈에 두 개의 .psm1 파일을 가져올 수 있습니까? 그게 내가 뭘하려고하지만 뭘하고있어 내가 말한거야 내가 지정한 모듈 'test_modules'을 찾을 수 없습니다. 각 .psm1 파일이 자신의 하위 폴더에 있어야합니까? – obious

+0

네, 별개로로드하고 싶다면 각 모듈은 hown own 디렉토리에 있어야합니다. – JPBlanc

1

함수에 따라 스크립트를 여러 스크립트로 나눈 다음이 스크립트를 Import-Module cmdlet을 사용하여이 문제가 발생합니다. 나는 심지어 저수준 함수의 다른 모듈을 가져 오는 몇 개의 모듈을 가지고있다.