Powershell видаляє файли лише з каталогу


14

Я намагаюся видалити всі файли (але не каталоги) у папці D: \ MyTemp, я спробував:

Remove-Item "D:\MyTemp"
Remove-Item "D:\MyTemp\*"

Однак, коли я перевіряю, всі файли все ще є.
Що я пропускаю?

Відповіді:


18

Спробуйте це:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer }

Знайдено його тут: /superuser/150748/have-powershell-get-childitem-return-files-only

Щоб видалити всі файли лише у вказаному каталозі (ігноруючи підкаталоги):

Remove-Item "D:\MyTemp\*.*" | Where { ! $_.PSIsContainer }

1
Це лише список файлів у поточному каталозі
— SteB

Мій поганий, не був впевнений, чи хотіли ви повторити. Я відредагую оригінал. Ви можете просто додати -recurse до команди Get-ChildItem
— Борн

Це працює (видаляйте файли лише із вказаного каталогу, ігноруючи під-режими): Remove-Item "D: \ MyTemp \ *. *" | Де {! $ _. PSIsContainer}
— SteB

Це чудово. Радий, що ти це працює.
— потерпіти

Вибачте, btw SteB, щойно я помітив, що забув включити Remove-Item. Це буде довгий день вау!
— потерпіти

12

Прийнята відповідь не працювала для мене, натомість мені потрібно було:

Get-Childitem -File | Foreach-Object {Remove-Item $_.FullName}

Щоб включити папки та файли, додайте -Recurse:

Get-Childitem -File -Recurse | Foreach-Object {Remove-Item $_.FullName}

1
Це також видаляє файли з підкаталогів - можливо, не те, що призначено в ОП ...
— Роббі Ді

1
Цю відповідь слід прийняти одну. Я вибираю тебе!
— Теоман шипахі


0

@bourne майже не було:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer } | remove-item

3
Це не дає відповіді на запитання. Коли у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію ; натомість надайте відповіді, які не потребують уточнення від запитувача . - З огляду
— rnxrx

Що ти означає, що це не дає відповіді? Що це робить? Це єдина повна відповідь на сторінці.
— Мордехай

Це не самодостатня відповідь. По суті у вашій відповіді це виправлення іншої відповіді, і її слід включити як коментар.
— rnxrx

Вибачте, я думаю, ви не розумієте повноважень. Тільки тому, що я посилаюся на іншу відповідь, це не робить мою менш «самодостатньою»,
— Мордехай

ви можете пояснити проблему іншою відповіддю, зробивши це командою. Інакше ви можете пояснити, що робить ваша команда Powershell
— Денніс Нолте
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.