我在网络共享中转储了一个数据仓库文件。因此,我无法进行大量的预操作,因此我需要从每一行中提取日期,其中每一行的日期始终以“,然后是8”字符日期(此格式为19990312)开头,这是yyyyddmm,我需要要有一个功能强大的“方式”将日期提取为mm / dd / yyyy格式,每行的长度略有不同,但始终是该行的最后8个“字符”,下面的日期是该文件的示例odf。任何帮助将不胜感激
"920:Bob Bikes ",19870707
"2471:CAMPBEL ",19971010
"2480:PARADISE cookis ",19990720
"2481:CAFE ",20050720
"2481:PARAE ",20050720
"2482: BONES ",20050720
答案 0 :(得分:3)
您问题的提取部分类似于Read line-by-line file and split values
因此,让我们将示例文本行放入file.txt中,并根据逗号将其分解,以将第六部分作为日期字段:
$yourdate = Get-Content -Delimiter "," -Path file.txt
$yourdate[6]
结果为20050720
问题的第二部分类似于converting date time format in powershell
因此,您想要将该字符串设置为日期,然后将该日期设置为所需的格式:
[Datetime]::ParseExact($yourdate[6], 'yyyymmdd', $us) | Get-Date -UFormat "%m/%d/%Y"
您的最终结果是: 2005年1月20日
最初以一种更容易理解代码第6部分的方式说明了这一点。但是,如果零件的数量不同,并且日期并不总是第六部分,则@TheMadTechnician是正确的,您可以将最后一部分称为$ yourdate [-1]。
所以最后一行看起来像这样:
[Datetime]::ParseExact($yourdate[-1], 'yyyymmdd', $us) | Get-Date -UFormat "%m/%d/%Y"