PowerShell treats all strings as System.String objects. This means that you can use the rich set of methods and properties available to those objects.

As shown Lesson 3, the Get- Member cmdlet retrieves an object’s members as the object is passed down the pipeline. Because a string is passed down as an object, you can use Get- Member for that string. For example, the following statement retrieves the object members for the string test output:

“test output” | Get-Member As you can see in Figure A, a string object supports numerous methods, including Substring and GetType. If you were to scroll down, you would also find the Length property, which provides the number of characters in the string.

Now suppose you want to learn more about the Substring method of the System.String object. You can again use Get- Member to retrieve the information you need. You specify the Substring method as an argument to Get-Member, then pipeline the results to the Format-List cmdlet:

“test output” | Get-Member Substring | Format-List Figure B shows the statement’s result. Notice that the definition includes details about how to use the method. This is the method’s syntax. The syntax specifies that you can choose one of two approaches when calling this method. Those approaches are: System.String Substring(Int32 startIndex) System.String Substring(Int32 startIndex, Int32 length)

In the first approach, you provide the target string and an integer that specifies the position in which you want the substring to start. The method will then return a substring that begins at this position and ends at the end of the string. For example, if the target string is test output and you want to return a substring that starts at position 5, you’d use the statement

(“test output”).Substring(5) which would return the substring output. As this statement shows, you must enclose the target string in parentheses, then add a period followed by the method name and the parameter enclosed in parentheses.

In the second approach, you provide the target string and the substring’s starting position and length. For example, suppose you want to return a substring that starts at the beginning of the string (position 0) and is four characters long. You’d use the statement

(“test output”).Substring(0,4) which would return the substring test.

When you call a method such as Substring or GetType, it generates its own object that can be passed down the pipeline. As a result, you can use Get-Member to retrieve a list of those object’s members. For example, the GetType method returns a System.RuntimeType object, and that object supports numerous methods and properties. The following statement returns a list of properties available to the System.RuntimeType object:

(“test output”).GetType() | Get-Member -MemberType Property

As the statement shows, you first enclose the string in parentheses, add a period followed by the method name, which in this case is Get- Type. You then pipe the object returned by GetType to Get-Member. Notice that I’ve used the -MemberType parameter to display only the returned object’s properties. Figure C shows the results.