我一直在关注WMI和Powershell,并解释了如何在Powershell中创建自定义类。它涉及编写一些C#代码和add-type
命令。当我尝试与+=
命令的对象来创建多个条目,我得到以下错误:使用op_Addition创建自定义类
Method invocation failed because [pawobject] doesn't contain a method named 'op_Addition'.
At line:23 char:14
+ $MyObjects += <<<< $MyObject
+ CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
我使用创建类的代码是这样的:
$source = @"
public class pawobject
{
public string Description { get; set; }
public string Name { get; set; }
public int Number { get; set;}
}
"@
,并添加它的PowerShell我使用以下命令:
Add-Type $source -Language CSharpVersion3
的代码来创建一个价值是这样的:
$MyObject = New-Object -TypeName pawobject -Property @{
Name = "MyObject5";
Number = 200;
Description = "Take3"
}
这创建了一个单一的$MyObject
。从这里是我的问题来了。我试图创建这样具有多个条目的对象:
$MyObjects += $MyObject
,但我得到上述错误。我曾尝试
$MyObjects = $MyObjects + $MyObject
我环顾四周网上,并尝试添加以下代码的public class
:
public static string Add(string a, string b) {
return (a + b);
}
,但似乎只与数字工作。我对C#不熟悉,所以我甚至不知道从哪里开始寻找解决这个错误。我可以看到这非常有用,因为我总是在我的环境中创建新对象。能够定义我们自己的类型将是一个巨大的优势,尤其是能够控制哪些类型的数据可以放入每个属性。预先感谢你,祝你有美好的一天!
编辑:让我解释我想要的结果。
我希望能够宣布像这样的:
$MyObject = New-Object -TypeName pawobject -Property @{
Name = "MyObject";
Number = 100;
Description = "Take1"
}
当我走的$MyObject
输出我结束了这一点:
Description Name Number
----------- ---- ------
Take1 MyObject 100
我希望再能声明此:
$MyObjects += $MyObjects
并以$MyObjects
结尾有这样的:
Description Name Number
----------- ---- ------
Take1 MyObject 100
Take2 MyObject5 200
基本上增加(不知道技术术语用于添加对象的两个套)$MyObject
到$MyObjects
你想CONCAT两个字符串..或者你想添加2个整数..如果是这样,你需要做的返回值的一些转换,如果我正确地理解你的问题 – MethodMan 2012-08-17 15:01:00
我试图连接两个字符串。我会更新主帖以解释我想要做什么。 – Nick 2012-08-17 16:55:50