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
bourne

Это работает (удаляет только файлы из указанного каталога, игнорируя подкаталоги): Remove-Item "D: \ MyTemp \ *. *" | Где { ! $ _. PSIsContainer}
SteB

Замечательно. Рад, что ты получил это работает.
Борн

Извините, кстати, 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. Просто потому, что я ссылаюсь на другой ответ, он не делает мой менее «самодостаточным»,
Мордехай

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