Powershell不会抓取文件

时间:2014-09-16 13:21:13

标签: powershell

所以我在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)

非常感谢帮助人员!

2 个答案:

答案 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的答案结合起来,希望得到你需要的东西。