gpt4 book ai didi

powershell - 电源外壳。创建一个类文件来保存自定义对象?

转载 作者:行者123 更新时间:2023-12-03 12:02:21 25 4
gpt4 key购买 nike

我使用Powershell的custom-object命令来保存数据点。自定义对象仅创建一个对象,并为其分配变量。 Powershell可以更进一步,创建可以用来制造对象的新类吗?

在下面的示例中,我存储了三个数据:服务器名称,时间戳和服务器上发生事件以来的分钟数。

当我学习Powershell时,我将所有这些都放入二维数组中:

$record = @("Server","Timestamp","Minutes")
for ($j = 0; $j -lt 10; $j++){
$record += @("Server1","$(get-date)",$j)
sleep 60
}
$record | export-csv -path c:\record.csv -no type information

export-csv不适用于数组,因此我开始使用自定义对象:
$record = @()
for ($j = 0; $j -lt 10; $j++){
$r = New-Object -TypeName PSObject
$r | Add-Member -MemberType NoteProperty -Name Server -Value ""
$r | Add-Member -MemberType NoteProperty -Name Timesteamp -Value ""
$r | Add-Member -MemberType NoteProperty -Name Minutes -Value ""
$r.server = "Server1"
$r.timestamp = "$(get-date)"
$r.minutes = "$j"
$record += $r
sleep 60
}
$record | export-csv -path c:\record.csv -no type information

这样可以正确导出,并且处理对象属性比处理二维数组中的列更容易。

但是,如果要创建不在数组中的多个自定义对象,则必须一遍又一遍地编写自定义对象代码。
$server1 = New-Object -TypeName PSObject
$server1 | Add-Member -MemberType NoteProperty -Name Server -Value ""
$server1 | Add-Member -MemberType NoteProperty -Name Timesteamp -Value ""
$server2 = New-Object -TypeName PSObject
$server2 | Add-Member -MemberType NoteProperty -Name Server -Value ""
$server2 | Add-Member -MemberType NoteProperty -Name Timesteamp -Value ""
#ad nauseum

如果Powershell除了可以设计自定义对象,还可以设计自定义类怎么办?喜欢OO编程语言吗?就像是:
class record {
-MemberType NoteProperty -Name Server -Value ""
-MemberType NoteProperty -Name Timestamp -Value ""
-MemberType NoteProperty -Name Minutes -Value ""
}
$server1 = new-object -TypeName record
$server2 = new-object -TypeName record
$server3 = new-object -TypeName record

在Powershell中有可能吗?

最佳答案

您可以在PowerShell中定义类。

Add-Type -Language CSharp @"
public class Record{
public System.DateTime TimeStamp;
public string Server;
public int Minutes;
}
"@;
$MyRecord = new-object Record;
$MyRecord.Server = "myserver";
$MyRecord.Timestamp = Get-Date;
$MyRecord.Minutes = 15;

关于powershell - 电源外壳。创建一个类文件来保存自定义对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18705158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com