powershell:get-date.adddays不正确?

phi*_*ill 1 powershell

我要做的是创建一个PowerShell脚本,它获取目录中的文件夹列表,该目录由正则表达式筛选出来,用nnnnnnx31或nnnnnnddd筛选出文件夹名称,其中n =前6个字符的alpha字符和最后3个字符是静态字符串x31的数字.接下来,它会筛选文件是否为90天,这些文件将被复制到另一个目录.

当我尝试运行时:

get-childitem | where {$_.name -match "^\d{6}([a-zA-Z]{3}|x31)$"} | where {$_.lastwritetime -lt (get-date.adddays(-90)}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

You must provide a value expression on the right-hand side of the -lt operator
At line: 1 char: 96
+ get-childitem | where {$_.name -match "^\d{6}([a-zA-Z]{3}|x31)$"} | where {$_.lastwritetime -lt  <<<< get-date.adddays(-90)}
Run Code Online (Sandbox Code Playgroud)

我也试过以下它并没有用:

get-childitem | where {$_.name -match "^\d{6}([a-zA-Z]{3}|x31)$"} | where {$_.lastwritetime -lt (get-date | foreach-object {$_.adddays(-90)}) }
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Sco*_*ein 8

你需要做的 (get-date).AddDays(-90)