2017-05-31 37 views
0

我有这样的代码片段,一个注册表值转换为日期字符串(原十六进制值2F 04 1E 00 00 00 00 00):Powershell的月份名称数量

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 
    } 
} 

我需要一个月数字而不是名字。

我已经找到了将月份号码转换为名称的例子,但是无法以相反的方式让它工作。

回答

3

您可以使用Get-Date并指定格式。 “MM”将以2位数字检索月份。

get-date -format "MM" 

这是可能的格式列表:https://technet.microsoft.com/en-us/library/ee692801.aspx

我不知道你的日期是什么格式,但是从我所看到的,你可以尝试

​​

和应该给你一个格式化为这样的日期:例如"2015 03 21"

+0

完美,这是做的伎俩。谢谢米奇! – J1raya