簡體   English   中英

使用PowerShell類調用“[namespace.class] :: method”樣式命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM