使用New-Timespan进行PowerShell脚本编写

时间:2018-02-08 19:34:35

标签: powershell scripting powershell-v3.0

我想做一个New-Timespan事情来找出进程运行的时间。

所以,我做的第一件事就是声明变量Get-Process

ex:$np = Get-Process notepad

现在我想创建一个名为Time的变量创建一个timepan对象来计算记事本何时启动。我可以使用任何参数来指示何时开始New-Timespan对象,然后使用点表示法将记事本的开始时间附加为参数?如果可能的话,我想创建一个名为seconds的第三个变量,并将其值设置为以秒为单位报告的时间跨度对象。

1 个答案:

答案 0 :(得分:0)

您可以将脚本属性添加到标准类。 看看about_Types.ps1xml。默认情况下,PowerShell从PowerShell安装目录中的Types.ps1xml文件加载多个类型扩展。你可以写一个:

<?xml version="1.0" encoding="utf-8" ?>
<Types>
    <Type>
       <Name>System.Diagnostics.Process</Name>
          <Members>
              <ScriptProperty>
                  <Name>RunningTime</Name>
                  <GetScriptBlock>
                     New-TimeSpan -Start $this.StartTime
                  </GetScriptBlock>
              </ScriptProperty>
          </Members>
    </Type>
</Types>

然后将其作为$PSHOME复制到Types.Custom.ps1xml,例如使用以下命令:

update-typedata -prependpath $pshome\Types.Custom.ps1xml

然后你有了新的属性,你只需要在你的个人资料中注册这个命令就可以在你的所有会话中使用它。 RunningTime Ex