我正在尝试使用PowerShell设置设备。我的代码是这样的:
$wmi = Get-WmiObject -Class Win32_OperatingSystem
$upTime = $wmi.ConvertToDateTime($wmi.LocalDateTime) – $wmi.ConvertToDateTime($wmi.LastBootUpTime)
当我调用$ upTime时,它会返回以下内容:
Days : 0
Hours : 1
Minutes : 8
Seconds : 5
Milliseconds : 311
Ticks : 40853110010
TotalDays : 0.0472836921412037
TotalHours : 1.13480861138889
TotalMinutes : 68.0885166833333
TotalSeconds : 4085.311001
TotalMilliseconds : 4085311.001
虽然我可以看到正常运行时间,但我需要专门将输出格式化为 D:dd,H:hh,M:mm ,因为我会自动将其输入监控系统,但是经过多次搜索,谷歌等,我无法看到如何实现这一目标。谁能建议怎么做呢?
答案 0 :(得分:3)
尝试:
"D:{0:dd}, H:{0:hh}, M:{0:mm}" -f $upTime
或者,如果你想逃避很多事情:
$upTime.ToString('\D\:dd\,\ \H\:hh\,\ \M\:mm')
当以太天,小时或秒为0时,这将格式化字符串以具有2个前导零。如果它们是1-9,则将1前导零。
"D:01, H:02, M:23"
答案 1 :(得分:-1)
您可以使用普通的.NET样式格式化它
$UptimeStr = $Uptime.ToString("ddd:dd, H:hh, mmm:mm")
或
$UptimeStr = '{0:ddd:dd, H:hh, mmm:mm}' -f $Uptime
如果上述格式不符合您的要求,则会在MSDN
上说明格式