Powershell变量询问日期&时间差异

时间:2012-09-11 10:22:41

标签: powershell

早上好,

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

User1,
Laptop1,
xyz1234,
01/01/2010

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

这个im的模糊逻辑代码期望像$tobereplaced = $machines.$purchased | where {$_$purchased = -getdate > 4 years}等等,但我无法弄明白。

非常感谢协助。

由于

2 个答案:

答案 0 :(得分:2)

$fourYearsAgo = (Get-Date).AddYears(-4) 
$tobereplaced = $machines | Where-Object { (Get-Date $_[-1]) -le $fourYearsAgo }

答案 1 :(得分: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年12月1日,2010年1月12日或2010年1月12日?