GetProc03 (C#) – mintakódGetProc03 (C#) Sample Code

A következő kód egy olyan parancsmag implementációját mutatja be Get-Process , amely képes fogadni a folyamaton keresztüli bevitelt.The following code shows the implementation of a Get-Process cmdlet that can accept pipelined input. Ez a megvalósítás egy olyan paramétert határoz meg, Name amely fogadja a folyamat bemenetét, lekérdezi a helyi számítógépről a megadott nevek alapján, majd a WriteObject (System. objektum, System. Boolean) metódust használja az objektumok adatcsatornába való küldéséhez.This implementation defines a Name parameter that accepts pipeline input, retrieves process information from the local computer based on the supplied names, and then uses the WriteObject(System.Object,System.Boolean) method as the output mechanism for sending objects to the pipeline.

Megjegyzés

A Get-Proc parancsmaghoz tartozó C#-forrásfájl (getprov03.cs) a Windows Vista és a .NET-keretrendszer 3,0 Runtime összetevőihez készült Microsoft Windows szoftverfejlesztői készlettel tölthető le.You can download the C# source file (getprov03.cs) for this Get-Proc cmdlet using the Microsoft Windows Software Development Kit for Windows Vista and .NET Framework 3.0 Runtime Components. A letöltési utasításokért lásd: a Windows PowerShell telepítése és a Windows POWERSHELL SDK letöltése.For download instructions, see How to Install Windows PowerShell and Download the Windows PowerShell SDK. A letöltött forrásfájlok a címtárban érhetők el <PowerShell Samples> .The downloaded source files are available in the <PowerShell Samples> directory.

MintakódCode Sample

namespace Microsoft.Samples.PowerShell.Commands
{
    using System;
    using System.Diagnostics;
    using System.Management.Automation;       // Windows PowerShell namespace.
    #region GetProcCommand

   /// <summary>
   /// This class implements the get-proc cmdlet.
   /// </summary>
   [Cmdlet(VerbsCommon.Get, "Proc")]
   public class GetProcCommand : Cmdlet
   {
      #region Parameters

       /// <summary>
       /// The names of the processes to act on.
       /// </summary>
       private string[] processNames;

      /// <summary>
      /// Gets or setsthe list of process names on 
      /// which the Get-Proc cmdlet will work.
      /// </summary>
      [Parameter(
         Position = 0,
         ValueFromPipeline = true,
         ValueFromPipelineByPropertyName = true)]
      [ValidateNotNullOrEmpty]
      public string[] Name
      {
         get { return this.processNames; }
         set { this.processNames = value; }
      }
       
      #endregion Parameters

      #region Cmdlet Overrides

      /// <summary>
      /// The ProcessRecord method calls the Process.GetProcesses 
      /// method to retrieve the processes specified by the Name 
      /// parameter. Then, the WriteObject method writes the 
      /// associated processes to the pipeline.
      /// </summary>
      protected override void ProcessRecord()
      {        
          // If no process names are passed to the cmdlet, get all 
          // processes.
          if (this.processNames == null)
          {
              WriteObject(Process.GetProcesses(), true);
          }
          else
          {
              // If process names are passed to the cmdlet, get and write 
              // the associated processes.
              foreach (string name in this.processNames)
              {
                  WriteObject(Process.GetProcessesByName(name), true);
              }
          } // if (processNames ...
      } // ProcessRecord
      #endregion Overrides
   } // End GetProcCommand class.

    #endregion GetProcCommand
}

Lásd még:See Also

Windows PowerShell – programozói útmutatóWindows PowerShell Programmer's Guide

Windows PowerShell SDKWindows PowerShell SDK