2015-08-25 28 views
1

时间属性我有这样的查询:PowerShell的提取可变

$cpuTime = (get-wmiobject Win32_Process -filter "commandline like '%STRING%'" -computername $server) 
$cpuTime | % { $_.ConvertToDateTime($_.CreationDate)} 

我如何提取只是 “时间”(HH,MM,SS)从$cpuTime变量?

回答

1

如果您只是想要一个字符串,可以使用custom date and time format string调用ToString。

$x = (get-wmiobject Win32_Process) 
$x | % { $creationDate = $_.ConvertToDateTime($_.CreationDate); $creationDate.ToString("hh:mm:ss")} 

你可以称之为DateTime.TimeOfDay获得Timspan回来代表午夜以来经过的时间。

$x = (get-wmiobject Win32_Process) 
$x | % { $creationDate = $_.ConvertToDateTime($_.CreationDate); $creationDate.TimeOfDay} | 
Select-Object Hours, Minutes, Seconds 
+0

谢谢! 这是工作,只是为了增加这个问题。 有没有办法使用这个变量来检索进程已经运行了多长时间? –

+1

如果您在机器上拥有管理员权限,您可以获得'KernelModeTime'和'UserModeTime',并添加它们以获得进程一直存活的滴答总数(100ns单位)。你可以用'[TimeSpan] :: TicksPerSecond'来划分它,以秒为单位。 –

+1

当你开始的时候你可以做一些像'$ now =(get-date)'的事情,然后在循环中做'$ elapsed = $ now - $ creationDate'。然后,只需使用你需要的'$ elapsed'部分。 –