[英]Using PowerShell class to invoke a “[namespace.class]::method” style command
我通過.net創建了一個powershell對象來調用命令。 當我調用像'Get-Process'這樣的常規命令時,我沒有遇到任何問題:
ps.AddCommand("Get-Process").AddParameter(...).Invoke()
但我無法使用語法“[namespace.class] :: method”調用.net方法,只是為了調用[System.IO.File] :: Exists(“c:\\ boo。文本”)。
我試過了
ps.AddCommand("[System.IO.File]::Exists(\"c:\\boo.txt\")").Invoke()
ps.AddCommand("[System.IO.File]::Exists").AddArgument("c:\\boo.txt").Invoke()
和其他一些人。 它總是拋出一個異常,表示無法識別指定的命令。
有一種方法可以調用那種類型的命令嗎? 謝謝
您需要向管道添加script
,因為調用.NET需要腳本,即.NET方法不被視為PowerShell commands
例如:
static void Main()
{
PowerShell ps = PowerShell.Create();
ps.AddScript(@"[IO.File]::Exists('C:\Users\Keith\foo.txt')");
foreach (PSObject result in ps.Invoke())
{
Console.WriteLine(result);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.