Powershell - 删除较旧的文件但不包括文件夹

时间:2013-05-17 12:07:11

标签: powershell

我在互联网上找到了一个脚本,我已经编辑了一点但它没有用

使用Powershell WS 2008 R2标准

脚本是:

$del480 = "I:\CISS\Upload"
Get-ChildItem $del480 -recurse *.* -force | 
    where {$_.lastwritetime -lt (get-date).adddays(-480)} | 
    Remove-Item -recurse

我需要的是向此脚本添加4个文件夹,必须排除删除-480天。 这是文件夹:

I:\CISS\Upload\_Atest
I:\CISS\Upload\_Reporting
I:\CISS\Upload\_Templates
I:\CISS\Upload\_Upload files
是的,有人能帮帮我吗?请记住,我不是剧本作家,我可以阅读一下。但是如果你添加一个类似add -exclude .......的文字,那我就不知道放在哪里了。

1 个答案:

答案 0 :(得分:0)

有多种方法可以解决这个问题。您可以在您的位置检查数组等进行foreach循环。以下是仅使用管道的替代方法。

创建路径的忽略列表,如下所示:

ignorelist.txt

I:\CISS\Upload\_Atest
I:\CISS\Upload\_Reporting
I:\CISS\Upload\_Templates
I:\CISS\Upload\_Upload files

然后尝试以下脚本

#I stored the date to avoid running it multiple times
$limit = (Get-Date).AddDays(-480)
$del480 = "I:\CISS\Upload"
#Specify path for ignore-list
$ignore = Get-Content "C:\Ignorelist.txt"

Get-ChildItem $del480 -Recurse | 
Where-Object {$_.LastWriteTime -lt $limit } |
Select-Object -ExpandProperty FullName |
Select-String -SimpleMatch -Pattern $ignore -NotMatch | 
Select-Object -ExpandProperty Line |
Remove-Item -Recurse