我有一个文本文件,如下所示:
testdatabase-21-07-15-12-00
testdatabase-21-07-15-18-00
testdatabase-21-07-15-23-00
testdatabase-22-07-15-12-00
testdatabase-22-07-15-18-00
testdatabase-22-07-15-23-00
and many more like this (dynamically generated)
我正在比较(21 / 22-07-15)与另一个文本文件,如果找到匹配,我需要查看哪个是最新的。比如,如果找到日期21-07-15的匹配,我需要从21的许多中检索最新的(23)。与22的情况相同,....如果找到匹配。
到目前为止,我所做的是:
$temp = Get-Content "C:\RDS\temp.txt"
foreach($te in $temp)
{
$t = $te -split '-'
$da = $t[1]
$mo = $t[2]
$yea = $t[3]
if("$da-$mo-$yea" -match $temp1)
{
# need to write the concept here
}else
{
#nothing
}
}
我怎样才能完成这项工作。任何帮助都会非常感激。
答案 0 :(得分:1)
您可以通过计算属性对输入文件中读取的行进行排序:
$fmt = 'dd-MM-yy-HH-mm'
$culture = [Globalization.CultureInfo]::InvariantCulture
Get-Content "C:\RDS\temp.txt" |
sort { [DateTime]::ParseExact(($_ -split '-', 2)[1], $fmt, $culture) } |
select -Last 1