标题: [问题求助] PowerShell读取文件内容后如何转换成表格并判断属性的值? [打印本页]
作者: PS2.0 时间: 2017-7-13 19:58 标题: PowerShell读取文件内容后如何转换成表格并判断属性的值?
1.txt内容如下:- DeviceID VolumeName FreeSpace(GB) Free(%)
- -------- ---------- --------------- --------
- C: C 47 15
- D: D 207 55
复制代码
Get-Content 1.txt 之后如何转换成表格呢?
因为后面我想判断:
每个分区的FreeSpace(GB)是否小于50
每个分区的Free(%)是否大于30
作者: qazplm 时间: 2017-7-13 21:26
本帖最后由 qazplm 于 2017-7-13 23:07 编辑
table只是输出格式,原始对象才是ps方便操作的,不知你的txt内容怎么来,但从内容看原本应该就能被ps直接处理,弄成txt再转对象,除非是特殊文本,如csv、xml、json等,否则并不能简单的转换
方法一,转为对象- $list=@();
- $t='DeviceID','VolumeName','FreeSpace','Free';
- gc '文本.txt'|Select-Object -skip 2|%{
- $a=$_.trim() -split '\s+';
- $b=New-Object Object;
- 0..3|%{Add-Member -inputObject $b -memberType NoteProperty -name $t[$_] -value $a[$_]}
- $list+=$b;
- }
- $list
复制代码
方法二,以原始对象- gwmi win32_logicaldisk -filter "DriveType=3" |format-table -autosize @{exp={$_.DeviceID};Lab="DeviceID"},@{exp={$(if($_.VolumeName){$_.VolumeName}else{$_.DeviceID[0]})};Lab="VolumeName"},@{exp={"{0:n0}" -f ($_.FreeSpace/1gb)};Lab="FreeSpace"},@{exp={"{0:n0}" -f ($_.FreeSpace/$_.Size*100)};Lab="Free"}
复制代码
方法三,直接处理txt
作者: PS2.0 时间: 2017-7-14 09:28
回复 2# qazplm
感谢。我没办法控制1.txt的生成,先试试第一种方法。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |