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