我要做的是创建一个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)}
我收到错误:
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)}
我也尝试过以下操作,但是没有用:
get-childitem | where {$_.name -match "^\d{6}([a-zA-Z]{3}|x31)$"} | where {$_.lastwritetime -lt (get-date | foreach-object {$_.adddays(-90)}) }
有什么想法吗?
答案 0 :(得分:8)
您需要执行(get-date).AddDays(-90)
答案 1 :(得分:1)
试试这个 - get-childitem | where {$_.name -match "^\d{6}([a-zA-Z]{3}|x31)$"} | where {$_.lastwritetime -lt (get-date).adddays(-90)}
答案 2 :(得分:1)
您可以使用一个where-object而不是两个:
get-childitem | where {$_.name -match "^\d{6}([a-zA-Z]{3}|x31)$" -AND $_.lastwritetime -lt (get-date).adddays(-90)}