所以我在PS脚本中有一行正在寻找给定目录中超过X天的文件......
Get-ChildItem -Path \\fsrv02\FTP\AX\AXDropoff\PositivePay\Response\ "*.*" -Recurse |where { ! $_.PSIsContainer }| where-object {$_.LastWriteTime -gt $date}|Sort-Object LastWriteTime -Descending| Write-host
所以我正在测试该行,我无法选择该文件夹中的任何文件。
当我把这部分拿出来时:
|where { ! $_.PSIsContainer }|
它选择该文件夹中的存档目录,因为它是最旧的。但我希望它忽略这些目录,所以我添加了这一行,我确信我可以将它与where-object结合,但不是100%...
我遇到的问题是文件夹中的文件没有.txt扩展名。我们从FTP中删除它们,它们都有.45或.40或.00文件扩展名...如何让PowerShell相应地查找这些文件......
我运行时的输出是语法正确,但它没有选择任何东西
PS我有一个$ date变量,它是这样的:
$date = (get-date).AddDays(-5)
非常感谢帮助人员!
答案 0 :(得分:3)
如果您要查找的文件早于$date
,则文件时间应小于$date
where-object {$_.LastWriteTime -lt $date}
答案 1 :(得分:1)
使用正则表达式过滤带有两位数扩展名的文件:
Get-ChildItem -Path \\fsrv02\FTP\AX\AXDropoff\PositivePay\Response\ "*.*" -Recurse
| where{ $_.extension -match "\d\d"}
你可以将它与@Rynant的答案结合起来,希望得到你需要的东西。