powershell use calculated properties

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了powershell use calculated properties相关的知识,希望对你有一定的参考价值。

原文

  powershell 处理的一般都是对象,对象会有一些属性,但是有一些更加有用的东西是通过对象已有属性计算得来的,我们可以创建这样的属性,powershell中将其称为 calculated property。

  如何创建呢?通过 select-object 命令来,先给例子

Get-ChildItem C:\Test | Select-Object Name, CreationTime, @{Name="Kbytes";Expression={$_.Length / 1Kb}}
  1. select-object 可以来选择通过管道传过来对象的属性(属性有很多,我们选取需要呈现的)
  2. 在select-object命令中通过建立一个哈希表来创建我们需要的属性
  3. 哈希表的格式为@{},里面有两个值,第一个name 对应我们创建的属性名称,第二个expression对应一个脚本段{},里面包含我们创建属性的代码,上例是将大小的现实转换为kb形式显示

命令返回如下

Name                                    CreationTime                       Kbytes
----                                    -------------                       ------
challenge.mdb                           12/17/2007 9:33:24 PM                  884
pool.mdb                                1/14/2008 8:16:15 AM                   224

 

  基本的用法就是这样,这个的确有很多可能性,但是前提是我们需要知道我们操作的对象的属性有什么,这个可以通过 get-menber 来查看

  最后需要说的是:select-object 会创建一个新的对象,这个对象和通过管道前get-childitem 获取到的对象已经不一样了,而我们建立的属性被当成新对象的属性

 

文章中还有个例子,计算文件存在时间的,有点用,如下

Get-ChildItem C:\Test | Select-Object Name, @{Name="Age";Expression={ (((Get-Date) - $_.CreationTime).Days) }}

 

  一个小tips powershell中关于大小的转换   xxx/1kb xxx/1mb xxx/1gb 都是可以的,

 

以上是关于powershell use calculated properties的主要内容,如果未能解决你的问题,请参考以下文章

[Algorithm] Calculate Pow(x,n) using recursion

sh 来自http://stackoverflow.com/questions/17419337/calculate-total-used-disk-space-by-files-older-than

[React Recoil] Use selectors to calculate derived data based on state stored within a Recoil atom(代码

[React Recoil] Use selectors to calculate derived data based on state stored within a Recoil atom(代码

[powershell]Use powershell to get file hash / 使用powershell获取文件哈希值

Check if a string is NULL or EMPTY using PowerShell