我有这段代码将注册表值转换为日期字符串(最初为十六进制值2f 04 1e 00 00 00 00 00):
ElseIf (($sepmastersvc)) {
$sepmasterst = [bool]$sepmaster
$sepStatus = $sepmastersvc.status
$SEPVscan = (get-itemproperty "HKLM:SOFTWARE\Wow6432Node\Symantec\Symantec Endpoint Protection\AV") 2> $null
If (!($SEPVscan)) {
$SEPVscanStatus = [bool]$SEPVscan
$SEPDatVer = "N/A"
}
Else {
$SEPVscanStatus = [bool]$SEPVscan
$SEPDatVerY = [string]($SEPVscan.PatternFileDate[0] + 1970)
$SEPDatVerM = ($DateTimeFormat.MonthNames[$SEPVscan.PatternFileDate[1]])
$SEPDatD = [string]$SEPVscan.PatternFileDate[2]
$SEPDatVer = $SEPDatVerY + $SEPDatVerM + $SEPDatD
}
}
我需要获取月号而不是名字。
我找到了将月份号码转换为名称的示例,但无法通过相反的方式使其工作。
答案 0 :(得分:3)
您可以使用Get-Date并指定格式。 " MM"将以2位数字检索月份。
get-date -format "MM"
以下是可能的格式列表:https://technet.microsoft.com/en-us/library/ee692801.aspx
我不确定你的日期是什么格式,但从我看到的,你可以试试
Get-Date -Date "$SEPDatVerM $SEPDatD $SEPDatVerY" -format "yyyy MM dd"
,这应该给你一个格式为这样的日期:例如"2015 03 21"