【发布时间】:2020-02-11 11:38:59
【问题描述】:
常用参数有几个例子,如ErrorVariable、InformationVariable;
get-item foad: -ev foo
$foo
"get-item" 将创建 $foo 的值并将其设置为 ErrorRecord 的实例。 如何创建自己的参数来做类似的事情?
基本上,我正在创建一个使用 WriteObject() 将数据写入管道的 cmdlet,但是我还希望允许用户访问一些附加信息 - 基本上是带外数据 - 这不是管道的一部分。
C#中的out参数示例:
public class ExampleCode
{
public int GetMyStuff(int param1, out string someVar)
{
someVar = "My out-of-band result";
return param1 + 1;
}
public static void RunMe()
{
ExampleCode ex = new ExampleCode();
string value;
int result = ex.GetMyStuff(41, out value);
Console.WriteLine($"result is {result}, OOB Data is {value}");
}
}
我正在寻找如何将“GetMyStuff()”转换为 powershell cmdlet。
[Cmdlet(VerbsCommon.Get, "MyStuff")]
public class ExampleCmdLet : PSCmdlet
{
[Parameter(Mandatory = false)] int param1;
[Parameter(Mandatory = false)] string someVar; // How to make this [out] ?
protected override void ProcessRecord()
{
someVar = "My out-of-band result";
WriteObject(param1 + 1);
}
}
【问题讨论】:
标签: c# powershell