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.