about_format.ps1xml.help.txt

(17 KB) Pobierz
TOPIC
    about_Format.ps1xml

SHORT DESCRIPTION
    The Format.ps1xml files in Windows PowerShell define the default display
    of objects in the Windows PowerShell console. You can create your own
    Format.ps1xml files to change the display of objects or to define default
    displays for new object types that you create in Windows PowerShell.

LONG DESCRIPTION
    The Format.ps1xml files in Windows PowerShell define the default display
    of objects in Windows PowerShell. You can create your own Format.ps1xml
    files to change the display of objects or to define default displays
    for new object types that you create in Windows PowerShell.


    When Windows PowerShell displays an object, it uses the data in structured
    formatting files to determine the default display of the object. The
    data in the formatting files determines whether the object is rendered in
    a table or in a list, and it determines which properties are displayed by
    default. 


    The formatting affects the display only. It does not affect which object
    properties are passed down the pipeline or how they are passed.


    Windows PowerShell includes seven formatting files. These files are 
    located in the installation directory ($pshome). Each file defines the 
    display of a group of Microsoft .NET Framework objects:


	Certificate.Format.ps1xml
            Objects in the Certificate store, such as X.509 certificates and 
            certificate stores.

	DotNetTypes.Format.ps1xml
            Other .NET Framework types, such as CultureInfo, FileVersionInfo, 
            and EventLogEntry objects.

	FileSystem.Format.ps1xml
            File system objects, such as files and directories.

	Help.Format.ps1xml
            Help views, such as detailed and full views, parameters, and 
            examples.

	PowerShellCore.format.ps1xml
            Objects generated by Windows PowerShell core cmdlets, such as 
            Get-Member and Get-History.

	PowerShellTrace.format.ps1xml
            Trace objects, such as those generated by the Trace-Command cmdlet.

	Registry.format.ps1xml 
            Registry objects, such as keys and entries.


    A formatting file can define four different views of each object: 
    table, list, wide, and complex. For example, when the output of a
    Get-ChildItem command is piped to a Format-List command, Format-List
    uses the view in the FileSystem.format.ps1xml file to determine how to 
    display the file and folder objects as a list.


    In a Format.ps1xml file, a view is defined by a set of XML tags that
    describe the name of the view, the type of object to which it can
    be applied, the column headers, and the properties that are displayed
    in the body of the view. The format in Format.ps1xml files is applied
    just before the data is presented to the user. 
    

  Creating New Format.ps1xml Files

      The .ps1xml files that are installed with Windows PowerShell are 
      digitally signed to prevent tampering because the formatting can include 
      script blocks. Therefore, to change the display format of an existing
      object view, or to add views for new objects, create your own 
      Format.ps1xml files, and then add them to your Windows PowerShell 
      session.


      To create a new file, copy an existing Format.ps1xml file. The new file
      can have any name, but it must have a .ps1xml file name extension. You
      can place the new file in any directory that is accessible to Windows
      PowerShell, but it is useful to place the files in the Windows PowerShell
      installation directory ($pshome) or in a subdirectory of the installation
      directory.

      To change the formatting of a current view, locate the view in the 
      formatting file, and then use the tags to change the view. To create a
      view for a new object type, create a new view, or use an existing view
      as a model. (The tags are described in the next section of this topic.)
      You can then delete all the other views in the file so that the changes
      are obvious to anyone examining the file.


      When you have saved the changes, use the Update-FormatData cmdlet to add
      the new file to your Windows PowerShell session. If you want your view
      to take precedence over a view defined in the built-in files, use the 
      PrependData parameter of Update-FormatData. Update-FormatData affects 
      only the current session. To make the change to all future sessions, add
      the Update-FormatData command to your Windows PowerShell profile.


  Example: Adding Calendar Data to Culture Objects

      This example shows how to change the formatting of the culture objects
      (System.Globalization.CultureInfo) generated by the Get-Culture cmdlet.
      The commands in the example add the calendar property to the default
      table view display of culture objects.


      The first step is to find the Format.ps1xml file that contains the 
      current view of the culture objects. The following Select-String command
      finds the file:


	  select-string -path $pshome\*format.ps1xml `
              -pattern System.Globalization.CultureInfo


      This command reveals that the definition is in the 
      DotNetTypes.Format.ps1xml file.


      The next command copies the file contents to a new file, 
      MyDotNetTypes.Format.ps1xml.


	  copy-item DotNetTypes.Format.ps1xml MyDotNetTypes.Format.ps1xml


      Next, open the MyDotNetTypes.Format.ps1xml file in any XML or text
      editor, such as Notepad. Find the System.Globalization.CultureInfo object
      section. The following XML defines the views of the CultureInfo object.
      The object has only a TableControl view.
 

      <View>
          <Name>System.Globalization.CultureInfo</Name>
          <ViewSelectedBy>
             <TypeName>Deserialized.System.Globalization.CultureInfo</TypeName>
             <TypeName>System.Globalization.CultureInfo</TypeName>
          </ViewSelectedBy>

          <TableControl>
              <TableHeaders>
                  <TableColumnHeader>
                      <Width>16</Width>
                  </TableColumnHeader>
                  <TableColumnHeader>
                      <Width>16</Width>
                  </TableColumnHeader>
                  <TableColumnHeader/>
              </TableHeaders>
              <TableRowEntries>
                  <TableRowEntry>
                      <TableColumnItems>
                          <TableColumnItem>
                              <PropertyName>LCID</PropertyName>
                          </TableColumnItem>
                          <TableColumnItem>
                              <PropertyName>Name</PropertyName>
                          </TableColumnItem>
                          <TableColumnItem>
                              <PropertyName>DisplayName</PropertyName>
                          </TableColumnItem>
                      </TableColumnItems>
                  </TableRowEntry>
               </TableRowEntries>
          </TableControl>
      </View>


      Delete the remainder of the file, except for the opening <?XML>, 
      <Configuration>, and <ViewDefinitions> tags and the closing 
      <ViewDefintions> and <Configuration> tags. You must also delete the 
      digital signature whenever you change the file.


      <?xml version="1.0" encoding="utf-8" ?>
      <Configuration>
          <ViewDefinitions>
              <View>
                  <Name>System.Globalization.CultureInfo</Name>
                  <ViewSelectedBy>
                      <TypeName>Deserialized.System.Globalization.CultureInfo</TypeName>
                      <TypeName>System.Globalization.CultureInfo</TypeName>
                  </ViewSelectedBy>

                  <TableControl>
                      <TableHeaders>
                          <TableColumnHeader>
                              <Width>16</Width>
                          </TableColumnHeader>
                          <TableColumnHeader>
                              <Width>16</Width>
                          </TableColumnHeader>
                          <TableColumnHeader/>
                      </TableHeaders>
                      <TableRowEntries>
                          <TableRowEntry>
                              <TableColumnItems>
                                  <TableColumnItem>
                                      <PropertyName>LCID</PropertyName>
                                  </TableColumnItem>
                                  <TableColumnItem>
                                      <PropertyName>Name</PropertyName>
                                  </TableColumnItem>
                                  <TableColumnItem>
                                      <PropertyName>DisplayName</PropertyName>
                                  </TableColumnItem>
                              </TableColumnItems>
                          </TableRowEntry>
                       </TableRowEntries>
                  </TableControl>
              </...
Zgłoś jeśli naruszono regulamin