Существует несколько примеров общих параметров, таких как ErrorVariable, InformationVariable;
get-item foad: -ev foo
$foo
"get-item" создаст и установит значение для $ foo для экземпляра ErrorRecord. Как я могу создать свои собственные параметры, которые делают что-то подобное?
По сути, я создаю командлет, который использует WriteObject () для записи данных в конвейер, но затем у меня также есть некоторая дополнительная информация, которую я хочу разрешить пользователям доступ - в основном из внеполосных данных - это не является частью конвейера.
Пример параметра out в C#:
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(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);
}
}