0

大家早,

我有一个变量如下:$machines = $user2,$name,$serial,$purchased 存储在 $machines 中的示例数据是:

User1,
Laptop1,
xyz1234,
01/01/2010

我想创建一个名为 $tobereplaced 的新变量,其中包含 $machines 中的所有记录,其日期距今天超过 4 年。

这个我期望的模糊逻辑代码类似于$tobereplaced = $machines.$purchased | where {$_$purchased = -getdate > 4 years}等等,但我无法弄清楚。

协助将不胜感激。

谢谢

4

2 回答 2

2
$fourYearsAgo = (Get-Date).AddYears(-4) 
$tobereplaced = $machines | Where-Object { (Get-Date $_[-1]) -le $fourYearsAgo }
于 2012-09-11T11:15:46.547 回答
1

将日期转换为 DateTime 并将其与四年前的日期进行比较。像这样,

# Assuming $m[3] contains the timestamp, parse it as a DateTime and compare
# against a date four years ago.
if([DateTime]::Parse($m[3]) -le [DateTime]::Now.AddYear(-4)) {
  $tobereplaced += $m
}

根据您的语言环境,您可能需要告诉[DateTime]::Parse()如何解析日期。2010 年 1 月 12 日是 2010 年 12 月 1 日还是 2010 年 1 月 12 日?

于 2012-09-11T10:42:24.390 回答