我想排除子文件夹中的文件,并删除其他文件夹中的文件

时间:2019-03-08 10:44:53

标签: powershell

我在主文件夹中有多个子文件夹,每个子文件夹中都有许多文件。我想保持某些文件夹的内容不变,并删除其余部分的内容。

我测试了代码,但是它在7天前删除了所有子文件夹中的文件。

$Path="C:\Shreyas1"
$NumberOfDays="-7"
$CurrentDate=Get-Date
$DeleteDays=$CurrentDate.AddDays($NumberOfDays)
## Heading
##$excludes="Specs"

Get-ChildItem $Path -Exclude $excludes -Recurse |
    Where-Object{($_.LastWriteTime -lt $DeleteDays )} |
    Remove-Item

1 个答案:

答案 0 :(得分:0)

您应该尝试在Get-ChildItem cmdlet之后使用相同的“ Where”语句,以过滤出特定的文件名。尝试这样的事情:

Get-ChildItem $Path -Recurse | Where-Object {$_.Name -notlike "*$excludes*" -and $_.LastWriteTime -lt $DeleteDays}

首先运行该命令以确保获得所需的内容,然后可以像在OP中所做的那样通过管道传输到Remove-item -Confirm:$false。编辑:-Confirm:$false开关意味着它不会提示您确认是否要删除文件,它只会删除。这就是为什么您要首先运行Get-ChildItem