我喜欢在 powershell 中使用如下结构。它们使跟踪 6 个月后发生的事情变得更加容易。
$processConfig = New-Object -TypeName psobject
$processConfig | Add-Member -MemberType NoteProperty -Name StartDate -Value ($startofweek)
$processConfig | Add-Member -MemberType NoteProperty -Name StartDateStr -Value (Get-Date $processConfig.StartDate -Format "yyyyMMdd HH:mm:ss")
$processConfig | Add-Member -MemberType NoteProperty -Name EndDate -Value ($endofweek)
$processConfig | Add-Member -MemberType NoteProperty -Name EndDateStr -Value (Get-Date $processConfig.EndDate -Format "yyyyMMdd HH:mm:ss")
$processConfig | Add-Member -MemberType NoteProperty -Name TargetDir -Value "C:\Scripts\out\"
$dbConfig = New-Object -TypeName psobject
$dbConfig | Add-Member -MemberType NoteProperty -Name Server -Value "server.address"
#etc
但是,我终其一生都无法弄清楚如何将普通 int 存储为属性。我尝试了一些不同的东西。
需要成员类型
$processConfig | Add-Member -TypeName System.Int32 -Name TrimLeadingLines -Value 3
那么为什么 Property 是参数的建议值呢?
$processConfig | Add-Member -MemberType Property -TypeName System.Int32 -Name TrimLeadingLines -Value 3
Add-Member : Cannot add a member with type "Property". Specify a different type for the MemberTypes parameter.
At C:\Scripts\kh_tca_export_ftps.ps1:80 char:18
+ ... essConfig | Add-Member -MemberType Property -TypeName System.Int32 -N ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Add-Member], InvalidOperationException
+ FullyQualifiedErrorId : CannotAddMemberType,Microsoft.PowerShell.Commands.AddMemberCommand
横向思考,但有点狡猾
$processConfig | Add-Member -MemberType ScriptProperty -TypeName System.Int32 -Name TrimLeadingLines -Value { return 3 }
我不想存储然后需要转换的字符串表示。是的,我可以使用 $var。是否有一种简单直接的方法可以在 Powershell 自定义对象中存储 Integer/Int32?
最佳答案
我一直都是这样做的[int]3
如下所示。当我需要在对象中存储 int 时效果很好。
$processConfig | Add-Member -MemberType NoteProperty -Name TrimLeadingLines -Value $([int]3)
这将返回
Int32
作为属性类型。PS C:\> $processConfig.TrimLeadingLines.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType
关于powershell - 使用 powershell 将整数存储在自定义对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58404413/