Runspace04 Örneği
Bu örnekte, komutları çalıştırmak için System.Management.Automation.Powershell sınıfının nasıl kullanıldığı ve komutlar çalıştırılan sonlandırıcı hataların nasıl yakan olduğu gösterir. İki komut çalıştırıldı ve son komuta geçerli olan bir parametre bağımsız değişkeni geçirildi. Sonuç olarak, hiçbir nesne döndürülz ve sonlandırıcı bir hata döndürülür.
Gereksinimler
Bu örnek 2.0 Windows PowerShell gerektirir.
Gösteriler
Bu örnekte aşağıdakiler gösterildi.
System.Management.Automation.Powershell nesnesinin işlem hattına komutlar ekleme.
İşlem hattına parametre bağımsız değişkenleri ekleme.
Komutları zaman uyumlu olarak iptal etmek.
komutları tarafından döndürülen nesnelerden özellikleri ayıklamak ve görüntülemek için System.Management.Automation.PSObject nesnelerini kullanma.
Komutların çalıştırması sırasında oluşturulan hata kayıtlarını alma ve görüntüleme.
Komutları tarafından atılan sonlandırıcı özel durumları yakalama ve görüntüleme.
Örnek
Bu örnek, komutlar tarafından sağlanan varsayılan çalışma alanı içinde zaman uyumlu olarak Windows PowerShell. Son komut, geçerli bir parametre bağımsız değişkeni komuta geçirilmesi nedeniyle sonlandırıcı bir hata verir. Sonlandırıcı hataya tuzak vardır ve görüntülenir.
namespace Microsoft.Samples.PowerShell.Runspaces
{
using System;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using PowerShell = System.Management.Automation.PowerShell;
/// <summary>
/// This class contains the Main entry point for this host application.
/// </summary>
internal class Runspace04
{
/// <summary>
/// This sample shows how to use a PowerShell object to run commands.
/// The commands generate a terminating exception that the caller
/// should catch and process.
/// </summary>
/// <param name="args">The parameter is not used.</param>
/// <remarks>
/// This sample demonstrates the following:
/// 1. Creating a PowerShell object to run commands.
/// 2. Adding commands to the pipeline of the PowerShell object.
/// 3. Passing input objects to the commands from the calling program.
/// 4. Using PSObject objects to extract and display properties from the
/// objects returned by the commands.
/// 5. Retrieving and displaying error records that were generated
/// while running the commands.
/// 6. Catching and displaying terminating exceptions generated
/// while running the commands.
/// </remarks>
private static void Main(string[] args)
{
// Create a PowerShell object.
using (PowerShell powershell = PowerShell.Create())
{
// Add the commands to the PowerShell object.
powershell.AddCommand("Get-ChildItem").AddCommand("Select-String").AddArgument("*");
// Run the commands synchronously. Because of the bad regular expression,
// no objects will be returned. Instead, an exception will be thrown.
try
{
foreach (PSObject result in powershell.Invoke())
{
Console.WriteLine("'{0}'", result.ToString());
}
// Process any error records that were generated while running the commands.
Console.WriteLine("\nThe following non-terminating errors occurred:\n");
PSDataCollection<ErrorRecord> errors = powershell.Streams.Error;
if (errors != null && errors.Count > 0)
{
foreach (ErrorRecord err in errors)
{
System.Console.WriteLine(" error: {0}", err.ToString());
}
}
}
catch (RuntimeException runtimeException)
{
// Trap any exception generated by the commands. These exceptions
// will all be derived from the RuntimeException exception.
System.Console.WriteLine(
"Runtime exception: {0}: {1}\n{2}",
runtimeException.ErrorRecord.InvocationInfo.InvocationName,
runtimeException.Message,
runtimeException.ErrorRecord.InvocationInfo.PositionMessage);
}
}
System.Console.WriteLine("\nHit any key to exit...");
System.Console.ReadKey();
}
}
}
Ayrıca Bkz.
Geri Bildirim
Gönderin ve geri bildirimi görüntüleyin