Powershell для удаления всех файлов с определенным расширением

17573
user2676140

Я хочу отсканировать каталог (нет подпрограмм) и удалить любой файл с расширением. .avi Я попробовал этот синтаксис, но не выдается никаких ошибок, и никакие файлы не удаляются. Это код, который я пробовал

get-childitem 'C:\Users\ramrod\Desktop\Firefly' -include *.avi | foreach ($_) 

Что нужно изменить, чтобы удалить все .aviфайлы из папки?

7
Что мешает вам использовать `rm * .avi`? (Да, это правильный синтаксис PowerShell, поскольку `rm` является псевдонимом` del`. GiantTree 7 лет назад 3
Технически, `rm` и` del` являются псевдонимами командлета `Remove-Item`. root 7 лет назад 1

4 ответа на вопрос

6
GiantTree

Use del *.<extension> or one of it's aliases (like rm, if you are more used to bash).

So it would be del *.avi to delete all files ending in .avi in the current working directory.

Use del <directory>\*.<extension> to delete files in other directories.

To recursively do this `ls *.avi -Recurse | foreach ` Kolob Canyon 7 лет назад 5
2
David Metcalfe

Предполагая предпочтительный метод открытия экземпляра Powershell в каталоге, общая версия будет выглядеть следующим образом:

Get-ChildItem *.avi | foreach { Remove-Item -Path $_.FullName } 

Для конкретной версии каталога:

Get-ChildItem -Path 'C:\Users\ramrod\Desktop\Firefly' *.avi | foreach { Remove-Item -Path $_.FullName } 

Добавить в -Recurseк Get-ChildItemвлиять на все содержащиеся в нем папки.

Пример:

Get-ChildItem *.avi -Recurse | foreach { Remove-Item -Path $_.FullName } 
0
guest-vm

Предположим, в текущем каталоге есть несколько текстовых файлов.
dir * -include *.txtИ dir *.txtработает, как ожидалось, но dir -include *.txtничего не дает. Причина хорошо объяснена на переполнении стека .

Исправленная команда:
dir 'C:\Users\ramrod\Desktop\Firefly\*.avi' | foreach

0
visionmn2

Это, наконец, сделал это для меня - попробовал все выше и нада.

get-childitem "<drive>:\<folder>" -recurse -force -include *.<ext> | remove-item -force 

Конечно, двухсторонняя сила не обязательна, но это то, что работает, поэтому я придерживаюсь этого.