我想读取一个文件;当一个值发生变化时,抓取该行。
$log = Import-Csv .\logfile.txt -Header Date, OS下面是一个文本文件中的数据示例:
11/19/2019,Windows 10 Enterprise Version 1809
11/19/2019,Windows 10 Enterprise Version 1809
11/19/2019,Windows 10 Enterprise Version 1809
11/19/2019,Windows 10 Enterprise Version 1903
11/19/2019,Windows 10 Enterprise Version 1903
5/5/2020,Windows 10 Enterprise Version 1909
5/6/2020,Windows 10 Enterprise Version 1909
5/6/2020,Windows 10 Enterprise Version 1909当操作系统更改为新版本时,抓取该行以显示操作系统更改时的日期和操作系统。我希望输出结果如下所示:
11/19/2019,Windows 10 Enterprise Version 1809
11/19/2019,Windows 10 Enterprise Version 1903
5/5/2020,Windows 10 Enterprise Version 1909非常感谢。
发布于 2021-05-07 01:27:32
使用循环中的变量跟踪前一个值:
$lastOS = ''
Import-Csv .\logfile.txt -Header Date, OS |ForEach-Object {
if($lastOS -ne $_.OS){
# new OS, output current record
$_
# and update our tracking variable
$lastOS = $_.OS
}
}通过提供的样本数据,它为我们提供了:
Date OS
---- --
11/19/2019 Windows 10 Enterprise Version 1809
11/19/2019 Windows 10 Enterprise Version 1903
5/5/2020 Windows 10 Enterprise Version 1909https://stackoverflow.com/questions/67423108
复制相似问题