Я пытаюсь удалить все файлы (но не каталоги) в папке D: \ MyTemp, пробовал:
Remove-Item "D:\MyTemp"
Remove-Item "D:\MyTemp\*"
Однако, когда я проверяю, все файлы все еще там.
Что мне не хватает?
Попробуй это:
Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer }
Нашел здесь: https://superuser.com/questions/150748/have-powershell-get-childitem-return-files-only
Чтобы удалить все файлы только в указанном каталоге (игнорируя подкаталоги):
Remove-Item "D:\MyTemp\*.*" | Where { ! $_.PSIsContainer }
Принятый ответ у меня не сработал, вместо этого мне понадобилось:
Get-Childitem -File | Foreach-Object {Remove-Item $_.FullName}
Чтобы включить как папки, так и файлы, добавьте -Recurse
:
Get-Childitem -File -Recurse | Foreach-Object {Remove-Item $_.FullName}
Вы были почти у цели, вам просто нужно:
Remove-Item "D:\MyTemp\*.*"
@bourne почти достал:
Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer } | remove-item