Как я могу удалить определенные файлы в папке, но не подпапки? - PullRequest
0 голосов
/ 28 мая 2019

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

Пример:

Folder A/Sub-folderB/

Теперь я хочу удалить файлы ТОЛЬКО из Folder A, и это должно продолжаться до последней папки N.

Это код, который я пробовал,

Get-Childitem C:\serverfolders\users\* | Where-Object {-Not $_.PSIsContainer} | Foreach-Object {Remove-Item $_.FullName}

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

3 голосов
/ 28 мая 2019

Просто добавьте опцию "-File":)

  Get-Childitem C:\serverfolders\users -File | Remove-Item -force

Подробнее о Справка Get-ChildItem для MS

0 голосов
/ 28 мая 2019

Вы можете использовать параметр -Depth, равный Get-ChildItem, чтобы ограничить количество уровней подкаталогов, включаемых в рекурсию.В вашем случае вам нужен только 1 уровень глубины, чтобы оставить все подпапки нетронутыми.

Get-ChildItem -Path 'C:\serverfolders\users' -Depth 1 -File -Recurse | Remove-Item -WhatIf

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

Get-ChildItem -Path 'C:\serverfolders\users' -Depth 1 -File -Recurse -Include '*.txt', '*.pdf', '*.doc*' | Remove-Item -WhatIf

Когда все результаты на экране будут удовлетворены, удалите переключатель -WhatIf

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