【问题标题】:PowerShell scripting with New-Timespan使用 New-Timespan 编写 PowerShell 脚本
【发布时间】:2018-07-19 11:47:40
【问题描述】:

我想做一个New-Timespan 的事情来了解一个进程运行了多长时间。

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

例如:$np = Get-Process notepad

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

【问题讨论】:

  • 2013 年回答 by the Scripting Guy 的根本问题(进程运行了多长时间)。
  • 例如,我启动记事本并运行了很长时间。所以,我想看看它运行了多长时间
  • 正如我所说,脚本专家早在 2013 年就回答了这个问题 - 请参阅我评论中的链接。
  • 谢谢,但这只是其中的一部分。我还需要一些东西
  • 谢谢我做到了。告诉我如何在 echo 命令中获取变量的值

标签: powershell scripting powershell-3.0


【解决方案1】:

您可以将脚本属性添加到标准类。 看看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>

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

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

然后您就拥有了新的属性,您只需在您的个人资料中注册此命令即可在您的所有会话中使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多