从命令行我可以做到。
.\test.ps1 1
从 C# 执行此操作时如何传递参数?我试过了
.AddArgument(1)
.AddParameter("p", 1)
我已经尝试在 .Invoke() 中将值作为 IEnumerable<object> 传递,但 $p 没有得到该值。
namespace ConsoleApplication1
{
using System;
using System.Linq;
using System.Management.Automation;
class Program
{
static void Main()
{
// Contents of ps1 file
// param($p)
// "Hello World ${p}"
var script = @".\test.ps1";
PowerShell
.Create()
.AddScript(script)
.Invoke().ToList()
.ForEach(Console.WriteLine);
}
}
}