항목
    about_methods

간단한 설명
    Windows PowerShell에서 메서드를 사용하여 개체에 대한 작업을 수행하는 방법을 설명합니다.
 

자세한 설명
    PowerShell에서는 개체라고 하는 구조화된 정보 컬렉션을 사용하여 데이터 저장소의 항목이나 컴퓨터의 
    상태를 나타냅니다. 예를 들어 Windows PowerShell에서 파일에 액세스할 때 실제 파일을 사용하지 
    않습니다. 대신 파일의 프록시 역할을 하는 개체 유형인 FileInfo 개체를 사용합니다.


    대부분의 개체에는 메서드가 포함되어 있습니다. 메서드는 해당 개체로 수행할 수 있는 특정 작업을 
    지정하는 명령 집합입니다. 예를 들면 FileInfo 개체에는 개체로 나타낸 파일을 복사할 수 있는 CopyTo라는 
    메서드가 포함되어 있습니다.


    특정 개체와 연결된 메서드 및 메서드 정의 목록을 보려면 Get-Member cmdlet을 사용합니다. 그러나 이 
    cmdlet을 사용하려면 개체가 특정 형태, 즉 변수를 통해 표시되거나, 명령을 Get-Member 명령에 대한 
    인수로 지정할 때 만들어지는 개체 또는 파이프라인 아래쪽으로 전달되는 개체 형태로 존재해야 합니다. 
    예를 들어 문자열 개체와 연결되어 있음을 의미하는 문자열 값이 $a 변수에 할당되어 있을 경우 개체에 
    있는 메서드 목록을 보려면 Windows PowerShell 명령 프롬프트에서 다음 명령을 입력하십시오.


        Get-Member -inputobject $a -membertype method


    파이프라인 아래쪽으로 전달되는 개체와 연결된 메서드 및 메서드 정의를 보려면 다음 예제와 같이 
    파이프라인 내에서 Get-Member 명령을 사용하십시오.


        Get-ChildItem c:\final.txt | Get-Member -membertype method


    메서드를 호출하는 가장 일반적인 방법은 변수나 식과 같은 개체 참조 뒤에 메서드 이름을 지정하는 
    것입니다. 개체 참조와 메서드는 마침표로 구분해야 합니다. 또한 메서드 이름 바로 뒤에서 메서드에 
    전달해야 하는 모든 인수를 괄호로 묶어야 합니다. 


    메서드 서명에 전달되는 인수가 없어도 빈 괄호를 계속 사용해야 합니다.


    예를 들어 다음 명령은 GetType 메서드를 사용하여 $a 문자열 개체와 연결된 데이터 유형을 반환합니다.


        $a.GetType()


    GetType 메서드는 개체의 데이터 유형을 반환하고 변수는 항상 개체를 나타냅니다. 개체 유형은 이 변수 
    내에 저장된 데이터 유형에 따라 달라집니다.


    변수를 선언하는지 또는 명령을 파이프라인으로 결합하는지에 관계없이 Windows PowerShell에서 
    수행하는 모든 작업은 개체와 연결됩니다.
    따라서 메서드는 다양한 상황에서 사용될 수 있습니다. 예를 들어 다음 명령과 같이 메서드를 사용하여 속성 
    값에 대한 작업을 수행할 수 있습니다.


        (Get-ChildItem c:\final.txt).name.ToUpper()


    여기서 ToUpper 메서드가 호출하는 개체는 이름 속성과 연결된 문자열 개체입니다. 이 예제를 실행하려면 
    Final.txt 파일이 C: 드라이브의 루트에 있어야 합니다. 이름 속성은 실제로 Get-ChildItem 명령이 
    반환하는 FileInfo 개체의 속성입니다. 이 예제는 Windows PowerShell의 개체 지향 속성을 보여 줄 뿐 
    아니라 액세스할 수 있는 개체에서 메서드를 호출하는 방법도 보여 줍니다.


    다음 예제와 같이 변수를 사용하여 Get-ChildItem 명령 출력을 저장하면 위의 예제와 동일한 결과를 
    얻을 수 있습니다.


        $a = (Get-ChildItem c:\final.txt).name
        $a.ToUpper()


    이 명령은 Get-ChildItem 명령이 반환하는 파일 이름이 들어 있는 변수와 연결된 문자열 개체의 
    ToUpper() 메서드를 다시 사용합니다.


    경우에 따라 메서드에는 해당 메서드의 작업을 리디렉션할 인수가 필요할 수 있습니다. 예를 들어 FileInfo 
    개체에는 한 위치에서 다른 위치로 파일을 이동할 수 있는 MoveTo 메서드가 포함되어 있고, 이 
    메서드에는 파일의 대상 위치를 지정하는 인수가 포함되어 있어야 합니다. 다음 명령은 이 인수를 포함하는 
    방법을 보여 줍니다.


        (Get-ChildItem c:\final.txt).MoveTo("c:\techdocs\final.txt")


    Get-ChildItem 명령은 Final.txt 파일에 대한 FileInfo 개체를 반환한 다음 이 개체의 
    MoveTo 메서드를 사용하여 작업을 시작하고 파일의 새 위치를 지정합니다.


    메서드와 연결된 인수를 확인하려면 해당 메서드 정의를 확인하십시오. 메서드 정의에는 하나 이상의 
    메서드 서명(Microsoft .NET Framework에서는 오버로드라고도 함)이 포함되어 있습니다. 메서드 
    서명에는 메서드 이름과 메서드를 호출할 때 제공해야 하는 매개 변수가 포함되어 있습니다. 이 매개 
    변수는 없을 수도 있습니다. Get-Member cmdlet 표시에서 각 메서드 서명은 앞의 서명과 쉼표로 
    구분됩니다. 예를 들어 FileInfo 클래스의 CopyTo 메서드에는 다음과 같은 두 개의 메서드 서명이 포함되어 
    있습니다.


        1. CopyTo(String destFileName)
        2. CopyTo(String destFileName, Boolean overwrite)


    첫 번째 메서드 서명에는 소스 파일을 복사할 대상 파일 이름(경로 포함)이 포함되어 있습니다. 다음 
    예제에서는 첫 번째 CopyTo 메서드를 사용하여 Final.txt를 C:\Bin 디렉터리로 복사합니다.


        (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt")


    대상 위치에 파일이 이미 있으면 CopyTo 메서드가 실패하고 다음과 같은 오류 메시지가 나타납니다.


        "1"개의 인수가 있는 "CopyTo"를 호출하는 동안 예외가 발생했습니다. "파일 'c:\bin\final.t
        xt'가 이미 있습니다.".


    두 번째 메서드 서명에서는 첫 번째 메서드 서명과 마찬가지로 대상 파일 이름을 전달하지만 다음 예제와 
    같이 대상 위치에 있는 동일한 이름의 기존 파일을 덮어쓸 것인지 여부를 지정하는 부울 값도 전달합니다.


        (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt", $true)


    이 부울 값을 전달할 때는 자동으로 만들어지는 $True 변수를 사용해야 합니다. $True 변수에는 "true" 
    부울 값이 포함되어 있고, $False 변수에는 "false" 부울 값이 포함되어 있습니다.


참고 항목
    about_Objects
    Get-Member









목차