Я хотел бы исключить файлы в подпапках и удалить файлы в других папках - PullRequest
0 голосов
/ 08 марта 2019

У меня есть несколько подпапок в главной папке, в каждой из которых находится количество файлов. Я хочу сохранить содержимое некоторых папок в целости и удалить содержимое остальных.

Я проверил код, но он удаляет файлы во всех подпапках за 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 голосов
/ 11 марта 2019

Вы должны попытаться использовать тот же оператор "Where" после вашего Get-ChildItem командлета, чтобы отфильтровать определенные имена файлов. Попробуйте что-то вроде этого:

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

Сначала запустите, чтобы убедиться, что вы получите то, что вы хотите, затем вы можете передать Remove-item -Confirm:$false, как вы сделали в своем OP. Редактировать: переключатель -Confirm:$false означает, что он не предложит вам подтвердить, хотите ли вы удалить файл, он просто удалит. Вот почему вы хотите сначала запустить Get-ChildItem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...