从零开始学PowerShell (4)数据的选择、排序与格式化
上⼀篇我们已经学会了如何通过⾃定义筛选条件来过滤我们想要的信息,在PowerShell中除了通过⾃定义筛选条件来过滤信息外,我们还可以直接使⽤Select-Object 命令来选择我们指定的信息栏并⽤Sort-Object 命令对罗列的信息排序。
sort命令排序假设,我们有⼀个⼩需求场景需要查看所有当前系统⾥的进程,但条件是进程的Id号⼤于1000以内的前⼗个进程信息名,并且Id号需要从⼤到⼩排列,该怎么做呢?这⾥我先贴上代码。
你可以看到也只需⼀⾏命令就输出了我们想要的信息,输出了⼀共⼗个命令,并且Id值是从⼤到⼩排序,没错,这就是我们想要的。
现在让我们仔细看看,这⾏命令具体在做什么,我想在Select-Object 之前的命令不需要解释了,正是上⼀篇我们所讲的如何⾃定义先决筛选条件来过滤我们的信息。⽽之后的Select-Object  所做的事就是直接罗列我们想输出的信息栏位,所以使⽤了Select-Object -Property Id,ProcessName  指明我们只想获得Id与ProcessName两列信息。因为我们还要求罗列出前⼗个进程信息,所以这⾥只需要配合参数-First 10就可以输出从头开始的⼗条信息。最后我们使⽤了Sort-Object 命令配合-Property 参数指明我们想排序
哪⼀列即可,由于Sort-Object 命令默认是按照顺序的序列排序的,所以我们加上了-Descending 参数要求排序以倒序的⽅式排序。
让我们再来进⼀步深化之前的需求场景,如果我们想把我们的排版信息做⼀些调整呢?基于这种情况,就可以使⽤PowerShell的格式化命令来输出我们的信息。PowerShell的格式化命令主要包括Format-Wide 、Format-List 、 Format-Table
和 Format-Custom , 这⾥我说下常⽤的两个Format-List 、 Format-Table Format-List 命令可以把对象信息以列表的形式展现出来。⼀般当我们考虑把信息以列表的形式展现的时候使⽤,如果你配合-Property *参数
使⽤会显⽰出所有输出对象能显⽰的所有信息列表。  Format-Table 命令可以把对象信息以表单的形式展现,同时还⽀持配合⼀些特定参数来动态调整表单样式。这⾥我们要提到的⼀个参数是-AutoSize ,为了更好的展现⽤了-AutoSize 参数的区别,我们将Select-Object 后的指定属性栏给删除以此来罗列出所有的信息栏,你可以发现配合了AutoSize参数后表单变的更加紧凑了,表单的宽度都是⾃动设置的。 Get -Process  | Where -Object  {$_.Id -gt  1000} | Select -Object  -Property  Id, ProcessName -First  10 | Sort -Object  -Property  Id -Descending

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。