1
我发现了一篇technet博客文章,表示可以让PowerShell使用C#代码。 文章:Using CSharp (C#) code in Powershell scripts让PowerShell脚本使用C#代码,然后将参数传递给Main方法
我发现我需要的C#代码在PowerShell中工作的格式,但如果它没有通过Main
方法的参数([namespace.class]::Main(foo)
)脚本抛出一个错误。
有没有一种方法,我可以传递一个“开”或“关”字符串的主要方法,然后根据哪个字符串传递运行if语句?如果这是可能的,你可以提供示例和/或链接?
下面是我目前试图构建我的代码的方式。
$Assem = @(//assemblies go here)
$source = @"
using ...;
namespace AlertsOnOff
{
public class onOff
{
public static void Main(string[] args)
{
if(args == on)
{//post foo }
if(arge == off)
{ //post bar }
}
"@
Add-Type -TypeDefinition $Source -ReferencedAssumblies $Assem
[AlertsOnOff.onOff]::Main(off)
#PowerShell script code goes here.
[AlertsOnOff.onOff]::Main(on)
我同意迈克在这里。 OP的代码看起来像是一个带有标准Main入口点的exe文件。将其修改为图书馆将会更直接。另外,如果您在这里使用单引号字符串,则不必在其中使用双引号。 :-) – 2014-09-05 22:52:16