Objects

 

SHORT DESCRIPTION

Working with objects in the Windows PowerShell

 

LONG DESCRIPTION

Every action you take in PowerShell is done within the context of objects. As data moves from one command to the next, it moves as one or more identifiable objects. An object, then, is a collection of data that represents an item in a namespace. An object is made up of three types of data: the object's type, its methods, and its properties.

 

The data about an object's type provides details about what kind of object it is. For example, an object that represents a file is a FileInfo object.

 

An object's method is an action that you can perform on the item that the object represents. For instance, a FileInfo object includes a method that you can use to cause the file to be copied. That is, when you invoke the copy method of the object, the file that the object represents is copied.

 

An object's property is information about the state of that object. For example, a FileInfo object includes the length property, which specifies the size of the file represented by the object.

 

When working with objects, you can use their methods and properties in your commands to take specific actions and manipulate data. This is especially useful when you combine multiple commands into a single pipeline.

 

When commands are combined in a pipeline, they pass information to each other as objects. When the first command runs, it sends one or more objects down the pipeline to the second command. The second command receives the objects from the first command, processes the objects, and then passes new or revised objects to the next command in the pipeline. This continues until all commands in the pipeline run.

 

The following example demonstrates how objects are passed from one command to the next:

 

Get-ChildItem c: | where {$_.PsIsContainer -eq $false} | Format-List

 

The first command (Get-ChildItem c:) returns an object for each item in the root directory of the file system. Those objects are passed down the pipeline to the second command (where {$_.PsIsContainer -eq $false}). The second command uses the PsIsContainer property of the object to filter the data from the input objects so that no directories (containers) are returned. The command then passes the information as objects to the third command (Format-List), which displays the contents of each piped object in a list format.

 

SEE ALSO

For information about namespaces, enter the following command at the PowerShell command prompt:

 

help about_namespace

 

For information about methods, enter the following command:

 

help about_method

 

For information about the properties, enter the following command:

 

help about_property

 

For information about pipelines, enter the following command:

 

help about_pipeline

 

For information about the Get-Member Cmdlet, enter the following command:

 

help Get-Member