PowerShell에서 문 사용

Powershelleseo Mun Sayong



PowerShell은 컴퓨터 시스템을 제어하고 관리 작업을 자동화하는 데 주로 사용되는 강력한 명령줄 셸 및 스크립팅 언어입니다. 문 사용은 가장 중요한 PowerShell 기본 사항 중 하나입니다. 특히, “ 사용 ” 문은 리소스를 관리하고 효율적인 코드 실행을 보장하는 데 중요한 역할을 합니다.

이 문서에서는 구문, 목적 및 실용적인 응용 프로그램을 포함하여 PowerShell에서 'using' 문의 다양한 측면을 살펴봅니다.







'이용' 진술의 목적

'using' 문을 사용하면 세션에서 사용되는 네임스페이스를 지정할 수 있습니다. 네임스페이스를 추가하면 스크립트 모듈 및 어셈블리에서 클래스를 가져오고 .NET 클래스 및 멤버의 사용을 단순화할 수 있습니다.



'사용'문구의 필수 사항

  • 'using' 문은 다른 스크립트나 모듈 문 앞에 나타나야 합니다. 매개변수를 포함하여 주석 처리되지 않은 명령문이 앞에 올 수 없습니다.
  • 'using' 문에는 변수가 없어야 합니다.
  • 'using' 문을 변수에 대한 'using:' 범위 한정자와 혼동해서는 안 됩니다. 둘 다 목적과 의미가 다릅니다.

'using' 문의 구문



'using' 문의 구문은 다음과 같습니다.





네임스페이스 사용 < .NET 네임스페이스 >

다음 예를 살펴보겠습니다.



네임스페이스 System.IO 사용

$바이트 = [ 파일 ] ::ReadAllBytes ( 'D:\c 샤프\Linuxhint1.txt' )
[ 파일 정보 ] ::새로운 ( 'D:\c 샤프\Linuxhint1.txt' )

위의 코드에서 먼저 네임스페이스를 'System.IO'로 지정했습니다. 프로그램의 두 번째 줄인 [File]::ReadAllBytes('D:c sharpLinuxhint1.txt')는 제공된 파일에서 모든 바이트를 읽고 $Bytes 변수에 배치합니다. 세 번째 줄에서 [FileInfo]::new('D:c sharpLinuxhint1.txt')는 FileInfo 클래스의 새 인스턴스를 만들고 FileInfo 개체를 반환합니다.

모듈에 대한 'using' 문

모듈의 클래스를 로드하기 위해 'using' 문을 활용할 수도 있습니다.

통사론

모듈 사용 < 모듈 이름 >

이 구문에서 “”, 전체 모듈 사양 또는 모듈 파일 경로를 “module name”의 값으로 사용할 수 있습니다.

'module-name>'이 경로인 경우 정규화된 경로 또는 상대 경로를 사용할 수 있습니다. 스크립트에 'using' 문이 있으면 해당 스크립트에서 상대 경로가 확인됩니다.

PowerShell은 ''이 이름 또는 모듈 사양인 경우 PSModulePath에서 제공된 모듈을 찾습니다. 다음 키는 모듈 사양인 해시 테이블을 구성합니다.

모듈 이름 - 필수의. 해당 모듈의 이름을 지정합니다.

선택적 GUID – 모듈의 GUID를 지정합니다.

또한 아래 나열된 세 가지 키 중 하나를 지정해야 합니다.

모듈 버전 – 모듈의 최소 허용 버전은 'ModuleVersion' 속성을 통해 지정됩니다.

최대 버전 – 모듈의 허용 가능한 가장 높은 버전을 정의합니다.

필수 버전 – 'RequiredVersion'을 사용하여 모듈의 정확하고 필요한 버전을 결정합니다. 다른 버전 키는 여기에 사용할 수 없습니다.

바이너리 모듈 또는 스크립트 모듈의 루트 모듈(ModuleToProcess)은 'using' 모듈 선언으로 가져옵니다. 중첩 모듈에 지정된 클래스 또는 모듈에 도트 소싱된 스크립트는 안정적으로 가져오지 않습니다. 모듈 외부의 사용자가 사용할 수 있게 하려는 모든 클래스는 루트 모듈에 지정해야 합니다.

예를 들면 다음과 같습니다.

모듈 PSReadline 사용

어셈블리를 위한 'using' 문

'using' 문을 사용하여 .NET 어셈블리에서 유형을 미리 로드할 수도 있습니다.

통사론

어셈블리 사용 < .NET 어셈블리 경로 >

이 구문에서 어셈블리가 로드되면 해당 어셈블리의 .NET 형식이 구문 분석되기 전에 스크립트에 미리 로드됩니다. 결과적으로 미리 로드된 어셈블리 유형을 사용하는 새로운 PowerShell 클래스를 개발할 수 있습니다.

'assembly'와 함께 'using' 문을 적용하는 예를 살펴보십시오.

어셈블리 System.Windows.Forms 사용

이 명령에서 어셈블리 ' 시스템.Windows.양식” PowerShell에서 'using' 문을 사용합니다.

해시 테이블 키에 대한 'using' 문

해시 테이블 ”는 구성 데이터 저장, cmdlet에 인수 제공, 스크립트에 데이터 저장 등 다양한 목적으로 PowerShell에서 사용되는 적응형 데이터 구조입니다.

문자열 '에 대한 암호화 해시 리눅스힌트! ”는 다음 스크립트를 통해 얻습니다.

네임스페이스 System.Text 사용
네임스페이스 System.IO 사용 [ ] $문자열 = '리눅스힌트!'
[ ] $알고리즘 = 'SHA1'

[ 바이트 [ ] ] $stringbytes = [ 유니코드인코딩 ] ::Unicode.GetBytes ( $문자열 )

[ 개울 ] $memorystream = [ 메모리 스트림 ] ::새로운 ( $stringbytes )
$hashfromstream = Get-FileHash -입력 스트림 $memorystream `
-연산 $알고리즘
$hashfromstream .Hash.ToString ( )

위의 PowerShell 코드는 파일 작업 및 인코딩에 필요한 네임스페이스를 가져오는 것으로 시작합니다. 입력 문자열 및 해싱 알고리즘(이 경우 ' SHA1 ”)가 정의됩니다. 그런 다음 입력 문자열은 ' 유니코드 ” 바이트 배열을 생성합니다.

그런 다음 바이트 배열의 내용을 사용하여 ' 메모리 스트림 '. memorystream의 해시 값은 '에 의해 제공된 'SHA1' 알고리즘을 사용하여 계산됩니다. Get-FileHash ” cmdlet. 스크립트는 얻은 해시 값을 출력에 문자열로 인쇄하여 끝납니다.

산출

결론

사용 ” PowerShell의 문은 네임스페이스, 모듈 또는 어셈블리를 지정하기 위한 강력한 도구입니다. 구문과 목적은 리소스를 처리하고 적절한 폐기를 용이하게 하며 코드 중복을 줄이기 위한 표준화되고 안전한 접근 방식을 제공합니다.