Удаление файлов и папок в PowerShell на Windows
Быстрые ссылки
- Как найти полный путь файла или папки
- Как удалить конкретный файл через PowerShell
- Как удалить конкретную папку через PowerShell
- Как удалить все файлы в папке, оставив саму папку
- Как удалить все файлы в папке и её подпапках
- Как удалять файлы с помощью подстановочных символов
Краткое резюме
- Для удаления файла или папки используйте cmdlet Remove-Item и указывайте полный путь: Remove-Item PATH
- Чтобы удалить все файлы в папке и оставить папку: Remove-Item “PATH*.*”
- Чтобы удалить файлы в папке и её подпапках: Remove-Item “PATH” -Recurse -Include .
PowerShell даёт гибкие инструменты для удаления объектов в Windows 10 и Windows 11. С его помощью можно удалять отдельные файлы, целые папки с содержимым, выборочные типы файлов и проводить симуляцию команд без фактического удаления.
Как найти полный путь файла или папки
Для большинства команд PowerShell нужен полный путь к объекту. Самый быстрый способ получить путь в проводнике Windows: откройте окно проводника и найдите нужный файл или папку. Затем удерживайте Shift, кликните правой кнопкой мыши по элементу и выберите “Копировать как путь”.

Теперь путь скопирован в буфер обмена и его можно вставить в окно PowerShell через Ctrl+V.
Как удалить конкретный файл с помощью PowerShell
Откройте окно PowerShell и выполните команду:
Remove-Item PATHГде PATH — полный путь к файлу. Пример для файла на рабочем столе:
Remove-Item "C:\Users\username\Desktop\Old-List.txt"
Важно: по умолчанию Remove-Item незапрашивает подтверждение. Чтобы команда спросила подтверждение перед удалением, добавьте параметр -Confirm:
Remove-Item "C:\Users\username\Desktop\Old-List.txt" -ConfirmДля безопасной проверки перед реальным выполнением используйте -WhatIf — PowerShell покажет, что было бы сделано, но не выполнит изменения:
Remove-Item "C:\Users\username\Desktop\Old-List.txt" -WhatIfЕсли удаляемые файлы являются скрытыми или системными, добавьте -Force:
Remove-Item "C:\path\to\file" -ForceКак удалить конкретную папку с помощью PowerShell
Удаление папки также выполняется через Remove-Item. По умолчанию удаление папки удалит её содержимое (файлы и подпапки).
Remove-Item PATHПример:
Remove-Item "C:\Users\username\Desktop\Old Files"
Если вы хотите, чтобы удаление рекурсивно обходило вложенные папки, укажите -Recurse (особенно полезно для удаления больших деревьев):
Remove-Item "C:\Users\username\Desktop\Old Files" -Recurse -Confirm-Confirm или -WhatIf помогут избежать случайных потерь данных.
Как удалить все файлы в папке, оставив саму папку
Чтобы очистить папку, не удаляя её саму, укажите шаблон путей с подчёркиванием или с использованием маски:
Remove-Item "PATH\*.*"Пример:
Remove-Item "C:\Users\username\Desktop\Your Files\*.*" -WhatIf
Здесь первая звёздочка соответствует любому имени файла, вторая — любому расширению.
Если вы хотите убрать только файлы (не подпапки), используйте Get-ChildItem с фильтром -File и затем передайте объекты в Remove-Item:
Get-ChildItem -Path "C:\path\to\folder" -File | Remove-Item -WhatIfКак удалить все файлы из папки и её подпапок
Для рекурсивного удаления всех файлов из папки и всех её подпапок можно сочетать параметры -Recurse и -Include, либо использовать Get-ChildItem с передачей в Remove-Item. Пример с Remove-Item:
Remove-Item "PATH" -Recurse -Include *.*Пример:
Remove-Item "C:\Users\username\Desktop\Downloads" -Recurse -Include *.* -WhatIfАльтернативный безопасный вариант (удаляются только файлы, а не пустые папки):
Get-ChildItem -Path "C:\Users\username\Desktop\Downloads" -File -Recurse | Remove-Item -WhatIf
Как удалять файлы с подстановочными символами
PowerShell поддерживает шаблоны (wildcards). Замените PATH на путь к папке:
Удалить все JPG-файлы:
Remove-Item "PATH" -Include *.jpgУдалить всё, кроме PDF-файлов:
Remove-Item "PATH" -Exclude *.pdfДругой способ — через Get-ChildItem для точной фильтрации и комбинирования условий:
Get-ChildItem -Path "PATH" -Include *.jpg,*.png -Recurse -File | Remove-Item -WhatIfДля удаления пустых папок используйте следующую цепочку команд (она находит каталоги с нулевым количеством элементов и удаляет их):
Get-ChildItem -Recurse PATH | where { $_.PSIsContainer -and @( $_ | Get-ChildItem ).Count -eq 0 } | Remove-ItemРекомендации по безопасности и восстановлению
Важно:
- Remove-Item не использует корзину — файлы удаляются напрямую. Перед удалением делайте резервную копию или используйте -WhatIf.
- Для проверки используйте -WhatIf; для ручного подтверждения — -Confirm.
- Чтобы удалить защищённые, скрытые и системные файлы, добавьте -Force.
- При массовом удалении сначала протестируйте команду на копии набора данных.
Восстановление: если вы случайно удалили важные файлы командой Remove-Item, восстановить их из корзины не получится. Попытайтесь восстановить из резервной копии или используйте специальное ПО для восстановления файлов как можно быстрее, пока диск не был перезаписан.
Когда подход не работает — частые проблемы и решения
- Права доступа (AccessDenied): запустите PowerShell от имени администратора или измените права NTFS.
- Путь содержит пробелы: всегда берите путь в двойные кавычки.
- Команда не находит файлы: проверьте корректность пути и регистр расширений; используйте Get-ChildItem для отладки.
- Файлы заняты процессом: закройте процесс или используйте Restart-Manager/Handle, чтобы определить блокирующий процесс.
Альтернативные подходы
- Использовать проводник Windows для простых удалений, когда нужна корзина.
- Применять Get-ChildItem с дополнительными фильтрами, чтобы сначала отобрать объекты, затем удалить.
- Для перемещения в корзину применять сторонние модули (например, PowerShell модуль, который реализует отправку в Recycle Bin) или использовать Shell.Application COM-объект.
Шпаргалка (cheat sheet)
- Удалить файл: Remove-Item “C:\path\to\file.txt”
- Удалить папку рекурсивно: Remove-Item “C:\path\to\folder” -Recurse
- Удалить все файлы в папке: Remove-Item “C:\path\to\folder*.*”
- Удалить файлы по расширению: Get-ChildItem -Path “C:\path” -Filter *.log -Recurse -File | Remove-Item
- Смоделировать удаление: добавить -WhatIf
- Запрос подтверждения: добавить -Confirm
- Принудительно удалить скрытые/системные: добавить -Force
Критерии приёмки
- Команда удаляет только те объекты, которые соответствуют заданной маске или пути.
- Перед массовым удалением выполнен один из защитных шагов: резервная копия, -WhatIf или -Confirm.
- Для автоматизированных скриптов предусмотрлена логика обработки ошибок и, при необходимости, откат (например, копирование в временное хранилище перед удалением).
Короткий глоссарий
- cmdlet: встроенная команда PowerShell.
- PATH: полный путь к файлу или папке.
- -Recurse: параметр для рекурсивного обхода подпапок.
- Wildcard: подстановочный символ, например * или ?.
Чеклист перед выполнением удаления (для администратора)
- Проверить путь и пробелы, окружить кавычками.
- Сделать резервную копию важных данных.
- Выполнить команду с -WhatIf.
- При необходимости запустить PowerShell от имени администратора.
- Добавить логирование в скрипт для последующей проверки.
Заключение
PowerShell даёт строгий и гибкий набор инструментов для удаления файлов и папок. Используйте -WhatIf и -Confirm, тестируйте команды на небольших наборах данных и всегда держите резервные копии при выполнении массовых операций. При возникновении ошибок сначала проверьте права доступа, корректность пути и занятость файлов процессами.
Теперь, когда вы знаете основные команды и приёмы, File Explorer не помешает вам управлять файлами — PowerShell даёт тонкие инструменты для точечных и массовых операций удаления.
Похожие материалы
Unity Lights: циферблат Apple Watch для Black History Month
Обновление видеодрайвера для Rainbow Six Siege
Ограничение частоты запросов в ASP.NET Core
Исправление лагов Android: TRIM и LagFix
Семафоры в Bash: что это и как реализовать