博客
关于我
Powershell 自定义对象小技巧
阅读量:797 次
发布时间:2023-03-04

本文共 870 字,大约阅读时间需要 2 分钟。

如何将列表转换为自定义对象:PowerShell优化实践

在PowerShell脚本编写中,将字符串列表转换为自定义对象是一个常见的需求。以下是通过多次优化得到的高效实现方案。

第一个版本:基础实现

$pp = $null$pp = [ordered]@{"Count"=$null;"Gift"=$null}$obj = New-Object -TypeName psobject -property $pp$result = @()$list.Split("`n") | ForEach-Object {    $temp = $obj | select * $temp.Count = $_.Split("")[0]    $temp.Gift = $_.Substring($_.Split("")[0].Length)    $result += $temp}$result

第二个版本:循环内直接创建

$result2 = @()$list -split "`n" | ForEach-Object {    $split = $_ -split " ", 2    $temp = [pscustomobject]@{        Count = $split[0]        Item = $split[1].trim()    }    $result2 += $temp}$result2

第三个版本:进一步简化

$gifts = $list -split "`n" | ForEach-Object {    $split = $_ -split " ", 2    [pscustomobject]@{        Count = $split[0]        Item = $split[1].trim()    }}$gifts

注意事项

  • 上述代码适用于PowerShell 3.0及以上版本
  • 每个版本都基于前一个的改进,逐步实现了代码的简化和性能的提升
  • 最终版本已完全去掉不必要的变量声明和赋值操作

转载地址:http://dlxfk.baihongyu.com/

你可能感兴趣的文章
PostgreSQL学习总结(11)—— PostgreSQL 常用的高可用集群方案
查看>>
Qt开发——多线程网络时间客户端
查看>>
PostgreSQL学习总结(13)—— PostgreSQL 15.8 如何成就数据库性能王者?
查看>>
PostgreSQL学习总结(13)—— PostgreSQL 目录结构与配置文件 postgresql.conf 详解
查看>>
PostgreSQL学习总结(1)—— PostgreSQL 入门简介与安装
查看>>
PostgreSQL学习总结(2)—— PostgreSQL 语法
查看>>
PostgreSQL学习总结(3)—— PostgreSQL 数据类型
查看>>
Qt开发——圆面积计算器
查看>>
PostgreSQL学习总结(5)—— PostgreSQL table 创建与删除
查看>>
PostgreSQL学习总结(6)—— PostgreSQL 模式(SCHEMA)详解
查看>>
PostgreSQL学习总结(7)—— PostgreSQL 语句 INSERT INTO、SELECT、UPDATE、DELETE 等学习
查看>>
PostgreSQL学习总结(8)—— PostgreSQL 基于数据库和基于模式(schema)的多租户分析
查看>>
PostgreSQL学习总结(9)—— PostgreSQL 运算符与表达式
查看>>
PostGreSql学习笔记001---PostgreSQL10.4安装(Windows)_支持PostGreGis_PostJDBC
查看>>
PostGreSql学习笔记002---Navicat Premium中管理PostGreSql 错误:字段rolcatupdate 不存在
查看>>
PostgreSQL学习笔记:PostgreSQL vs MySQL
查看>>
PostgreSQL实现shape数据转geojson数据(地图工具篇.18)
查看>>
PostgreSQL导入shape数据(地图工具篇.10)
查看>>
PostGreSql工作笔记003---在Navicat中创建数据库时报错rolcatupdate不存在_具体原因看其他博文_这里使用pgAdmin4创建管理postgre
查看>>
PostGreSql工作笔记004---PostGreSql修改密码_windows和linux下修改
查看>>