-------先上个例子-------

$aaa =
@'
0.027 0.034 0.834 0.105
0.346 0.558 0.018 0.078
0.001 0.997 0.001 0.001
0.994 0.001 0.004 0.001
0.001 0.996 0.002 0.001
0.001 0.001 0.997 0.001
0.001 0.009 0.001 0.989
0.051 0.111 0.837 0.001
'@

$t =
@'
{字段名1*:0.027} {字段名2:0.034} {字段名3:0.834} {字段名4:0.105}
{字段名1*:0.346} 0.558 0.018 0.078
'@

#【字段名】也可以叫【属性名】
$bbb = $aaa | ConvertFrom-String -TemplateContent $t
$bbb |Format-Table -AutoSize

-------命令解释-------

ConvertFrom-String
命令的功能和目的:
把【行列整齐字符串】转换成【PSCustomObject】

powershell 传教士 原创文章 2016-01-06 允许转载,但必须保留名字和出处,否则追究法律责任 ConvertFrom-String

脚本必然要进行文本处理,文本处理又没有什么通用的规律可循。祖师爷发明的【模板】法真是太爽了!
字符串变成对象属性后,粒度变小了,并且很容易输出到数据库,excel中,为行列转换提供数据了。
那是一条神奇的天路啊啊~~,令字符的输出变成对象~~,
从此那山不再高,扣输出不再难,字符和对象欢聚一堂。

-------模板的具体制作方法-------

模板中,把要分列的内容,用大括号【{}】扩起来,里面加一个冒号,冒号前面是你定义的【属性名】,冒号后面是【属性值】
每行第一个【属性名】后面要加上【*】,【模板行】至少要有两行例子,至少要有两个【*】,
例子的距离和真实数据的距离,不用一样。如:

真实数据:
0.027 0.034<-- 这里是距离,有n个空格 -->0.834 0.105

模板:
{字段名1*:0.027} {字段名2:0.034}<-- 这里是距离,用一个空格,或一个tab即可 --> {字段名3:0.834} 0.105

-------其他例子-------

$返回数据 = @(netstat -an )
$返回数据 -replace '^\s+' | ConvertFrom-String -PropertyNames 协议, 本地IP端口, 外部IP端口, 状态

-------感谢 群友 小楼 分享的例子-------

#Requires -Version 5.0
$s=@"
张三
25
李四
34
王五
12
赵六
65
"@

$t=@"
{Name*:张三}
{Age:25}
{Name*:李四}
{Age:34}
"@

$s | ConvertFrom-String -TemplateContent $t

结果:

Name Age
---- ---
张三 25
李四 34
王五 12
赵六 65

【长老】[小楼](55589641) 12:48:37
ConvertFrom-String的作用是提取文本中的有用信息,转为psobject

$t=@"
SSID 1 : {bssid*:abcabc}
Network type : 结构
身份验证 : WPA2 - 个人
加密 : CCMP
BSSID 1 : {macaddress:aa:bb:08:11:33:3c}
信号 : 83%
无线电类型 : 802.11n
频道 : 3
基本速率(Mbps) : 1 2 5.5 11
其他速率(Mbps) : 6 9 12 18 24 36 48 54
SSID 2 : {bssid*:defdef}
Network type : 结构
身份验证 : WPA2 - 个人
加密 : CCMP
BSSID 1 : {macaddress:cc:dd:e4:7a:c4:d8}
信号 : 64%
无线电类型 : 802.11n
频道 : 6
基本速率(Mbps) : 1 2 5.5 11
其他速率(Mbps) : 6 9 12 18 24 36 48 54
"@

netsh wlan show network mode=bssid | ConvertFrom-String -TemplateContent $t
【长老】[小楼](55589641) 12:55:47
结果:
bssid macaddress
----- ----------
abc-internet b4:a4:e3:65:ea:60
sannongziben1 00:22:aa:ad:0b:44
abcd 64:f6:9d:d5:e4:40
abc-BYOD 64:f6:9d:d5:e4:42
abc-GUEST 64:f6:9d:d5:e4:41
sharmoon 78:a1:06:58:6d:82
sannongziben666 00:22:aa:ad:1c:d8
TP-LINK-88SL ec:26:ca:30:78:dc
abcde 00:1f:33:de:22:ae
TP-LINKlongten 14:75:90:bd:9a:cc
weijin 14:75:90:43:96:fe
CTC-INTER 14:cf:92:62:76:d4
D-Link_DIR-600M 34:08:04:7d:2a:b1

转载于:https://www.cnblogs.com/piapia/p/5089332.html

ConvertFrom-String 命令研究相关推荐

  1. 图解用tree命令研究Windows目录、.net目录、项目目录、JDK目录

    一 用tree命令研究目录 有些目录下内容很多,都不太搞的清楚,可以用tree命令研究下: 首先调个柔和些的控制台颜色,RGB(50,50,50): 下面第一条把Windows目录(含文件)结构输出到 ...

  2. TCL语言笔记:TCL中的String命令

    一.介绍 字符串是 Tcl 中的基本数据类型,所以有大量的字符串操作命令.一个比较重要的问题就是模式匹配,通过模式匹配将字符串与指定的模式(格式)相匹配来进行字符串的比较.搜索等操作. 二.strin ...

  3. mset redis_redis mset string 命令简介

    一.命令简介 mset string命令在redis中主要功能是: 可以通过一条命令对多个键进行赋值操作, 类似与一次执行多条set命令 二.命令使用说明 命令语法如下: redis 192.168. ...

  4. Linux工具篇 | Ubuntu安装string命令

    一.string命令安装 执行如下命令: $ sudo apt-get install binutils 二.GNU binutils GNU binutils是一组二进制工具集.包括:addr2li ...

  5. Redis源码-String:Redis String命令、Redis String存储原理、Redis String三种编码类型、Redis字符串SDS源码解析、Redis String应用场景

    Redis源码-String:Redis String命令.Redis String存储原理.Redis String三种编码类型.Redis字符串SDS源码解析.Redis String应用场景 R ...

  6. PML调用PDMS内核命令研究

    一. 概述 本文介绍通过PMLNET包装PDMS的内核命令, 实现pml调用常用的内置Command命令. 二. 实现方法 写一个PMLNET的dll, 开放一个callback(string com ...

  7. FFMPEG转码常用命令研究

    ffmpeg简介 官网链接是http://www.ffmpeg.org/上有说明,它是音视频的分离,转换,解码的完全解决方案.  其中最重要的就是libavcodec库.它被mplayer或者xine ...

  8. GoldenGate的ADD SCHEMATRANDATA命令研究

    [背景] Oracle Database 11.2.0.3,单机,测试环境 测试证实Oracle GoldenGate的命令ADD SCHEMATRANDATA能否自动处理附加日志,而无需人工干预 [ ...

  9. Redis String命令大全

    设置 序号 命令 简介 1 set key value 设置键的值 2 mset key value [key value -] 批量设置key的值 3 setnx key value 当key不存在 ...

最新文章

  1. SpringBoot学习之启动方式
  2. js数组中forEach/some/every/map/filter/reduce的区别
  3. 以下关于python的赋值_单选(1分) 以下关于Python的赋值说法中错误的是哪一个选项?...
  4. java基础之堆、栈、方法区 继承 多态
  5. Cortex - M3 中断和异常的区别
  6. 第三次学JAVA再学不好就吃翔(part19)--二维数组
  7. Python:使用SWIG编写C语言扩展
  8. Webpack 4进阶--从前的日色变得慢 ,一下午只够打一次包
  9. python写一个类方法_python中如何写类
  10. Linux下清空回收站
  11. 截图工具FastStone Capture
  12. vmware7序列号
  13. speedoffice(Excel)表格如何添加边框?
  14. 马斯克喊话库克:昨天你对我爱答不理,今天我让你高攀不起
  15. VMware Workstation虚拟机环境下Xubuntu系统如何设置中文
  16. 深度卷积神经网络架构:从基本组件到结构创新
  17. httpsclient 自动获取证书 无证书访问 验证过能直接用
  18. 程序集定义(Assembly Definition File)
  19. Linux-无密码访问、远程拷贝、无密码登录
  20. 3D点云初探:基于全卷积神经网络实现3D物体识别

热门文章

  1. EDM的九大用途盘点
  2. SpringMvc整合Quartz实现定时任务项目源码
  3. java的自动类型转换和强制类型转换
  4. android传递数据bundle封装传递map对象
  5. 从CentOS6.0i386到CentOS6.6x86-64,搬家中,磕磕跘跘,各种折腾……
  6. TortoiseSVN检出链接(可用于与站点集成)
  7. Dalvik虚拟机简要介绍和学习计划
  8. 一个跳楼博士生的遗书:这个世界是一沟绝望的死水
  9. 真格量化——GFTD策略
  10. 静态代理、动态代理、AOP