powershell - 使用 powershell 将整数存储在自定义对象中
问题描述
我喜欢在 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 存储为属性。我尝试了一些不同的东西。
需要 MemberType
$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。是否有一种简单直接的方法可以将 Integer/Int32 存储在 Powershell 自定义对象中?
解决方案
我一直[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
推荐阅读
- oracle - 使用 Spring 4.3.0 JDBC 模板插入或更新逻辑的总记录的 5% 的处理时间很长
- javascript - 如何使用 Jasmine 监视多个类/对象方法
- python - 我正在尝试使用 notepad++ 启动一个简单的计算器程序,我做错了什么?
- javascript - 无法使用 React 实现侧导航栏
- node.js - Express cookie-session 不在客户端创建 cookie
- java - 项目构建错误:不可解析的父 POM - Spring boot
- sweetalert2 - Sweetalert 2 多于 2 个按钮。不要关闭拒绝
- python - Python 参数类型与 C++ 签名不匹配 - Boost.Python
- html - React:将鼠标悬停在组件上
- java - 在应用程序中导入库时如何导入javadoc jar