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

$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

ConvertFrom-String 命令研究的更多相关文章

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

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

  2. Linux+Redis实战教程_day02_3、redis数据类型_4、String命令_5、hash命令_6、java操作redis数据库技术

    3. redis数据类型[重点] redis 使用的是键值对保存数据.(map) key:全部都是字符串 value:有五种数据类型 Key名:自定义,key名不要过长,否则影响使用效率 Key名不要 ...

  3. redis系列:通过日志案例学习string命令

    前言 该文章将通过一个小demo将讲述Redis中的string类型命令.demo将以springboot为后台框架快速开发,iview前端框架进行简单的页面设计,为了方便就不使用DB存储数据了,直接 ...

  4. redis 数据类型为string命令整理以及示例

    #设置值 SET key value [EX seconds] [PX milliseconds] [NX|XX] SET命令加上选项已经可以完全取代SETNX, SETEX, PSETEX的功能,所 ...

  5. redis String 命令

    今天在虚拟机的Ubuntu上装了一个redis,学习redis的一些基本东西,在数据类型的时候,看到redis的,String,hash,set list zset,对String的setbit命令一 ...

  6. Redis String命令

        命令 解释 APPEND key value 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾. 如果 key 不存在, APPEND ...

  7. Redis命令行之String

    一.Redis之String简介 1. String是redis最基本的数据类型,一个key对应一个value. 2. String是二进制安全的,可以包含任何数据,例如图片或序列化的对象. 3. S ...

  8. redis常用命令、常见错误、配置技巧等分享

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/117.html?1455860236 1. redis查看当前所有的key ...

  9. vim常用命令总结 (转)

    vim 选择文本,删除,复制,粘贴   文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下: v    从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束. V    从光标 ...

随机推荐

  1. MongoDB数据库基本用法

    show dbs:显示数据库列表  show collections:显示当前数据库中的集合(类似关系数据库中的表)  show users:显示用户 use <db name>:切换当前 ...

  2. 初识python第二天(3)

    我们接着上一篇博客,继续来来了解Python一些常见类的函数使用方法 一.int # 运算符,>=,比较self是否大于等于value,只要满足大于或者等于其中一个条件,就返回True,否则就返 ...

  3. xcode8集成百度地图(framwork包) archive是bitcode问题

    (1)问题描述:真机和模拟器测试都能编译安装,但是需要打包archive的时候 总是编译出错,眼看就要上线了,还出现这问题,纠结啊.... 打印出来的错误: ld: bitcode bundle co ...

  4. LA 4287 等价性证明

    题目链接:http://vjudge.net/contest/141990#overview 题意是告诉你有n个命题,m条递推关系,表示某个命题可以推出另外一个命题. 现在问你至少在增加多少个递推关系 ...

  5. Android中的动态加载机制

    在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本 ...

  6. 由“单独搭建Mybatis”到“Mybatis与Spring的整合/集成”

    在J2EE领域,Hibernate与Mybatis是大家常用的持久层框架,它们各有特点,在持久层框架中处于领导地位. 本文主要介绍Mybatis(对于较小型的系统,特别是报表较多的系统,个人偏向Myb ...

  7. Intellij自动下载导入框架包

    忽然发现intellij尽然可以自动导入 框架所需的包,而且可以选择jar包版本,瞬间发现Maven,gradle管理jar包还得写配置文件弱爆了. 以Hibernate为例: 1.ProjectSt ...

  8. iOS FMDB的使用

    简介: SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.iOS SDK 很早就支持了 SQLite,在使用时,只需要加入 libsqlite ...

  9. PyCharm配置GitHub

    原文出处: https://github.com/wssnail/ws96apt/blob/master/weixin/a.py#L21-21打开file,选择settings,找到Version C ...

  10. Java与mysql数据库编程中遇见“Before start of result set at com.mysql.jdbc.SQLError.createSQLException” 的解决办法

    这个Bug是因为在取出ResultSet对象,对其进行操作时,没有采用.next()方法将ResultSet对象的光标移至指定行,不管Statement对象执行SQL语句是否十分确定能搜出记录,也不可 ...