Próbuję nauczyć się wywoływać cmdlety PS z C# i spotkałem się z klasą PowerShell. To działa dobrze dla podstawowych zastosowań, ale teraz chciałem wykonać to polecenie PS:Wywoływanie cmdlets powershell z C#
Get-ChildItem | where {$_.Length -gt 1000000}
Próbowałem to poprzez budowanie klasy PowerShell, ale nie wydaje się to zrobić. To jest mój kod do tej pory:
PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-ChildItem");
ps.AddCommand("where-object");
ps.AddParameter("Length");
ps.AddParameter("-gt");
ps.AddParameter("10000");
// Call the PowerShell.Invoke() method to run the
// commands of the pipeline.
foreach (PSObject result in ps.Invoke())
{
Console.WriteLine(
"{0,-24}{1}",
result.Members["Length"].Value,
result.Members["Name"].Value);
} // End foreach.
Zawsze otrzymuję wyjątek, kiedy to uruchomię. Czy jest możliwe uruchomienie cmdletu Where-Object w ten sposób?
Ach, świetnie, rozumiem. Dzięki za wyjaśnienie i kod :) – NullPointer
Nie ma za co. – x0n
+1 Thx guy, już szukają wieków później – algorhythm