Как удалить файл в командной строке
Содержание:
Удалить файл или папку с диска или флешки – что, казалось бы, может быть проще? Да, это действительно просто, если только вы не работаете в среде восстановления, в которой Проводник недоступен. В таких случаях вам придется использовать командную строку – мощный инструмент управления Windows, о котором многие пользователи уже начали забывать. Консоль может вам понадобиться и в работающей системе, например, при удалении скрытых и недоступных только для чтения файлов, а также файлов, используемых процессом explorer.exe (после его завершения).
↑ Как удалить файл средствами Командной строки или PowerShell
↑ Команды DEL и ERASE
Для удаления файлов в классической командной строке Windows используются две команды – DEL и ERASE, которые функционально ничем не отличаются, имея одинаковый набор аргументов. Команда имеет следующий синтаксис:
del /key full path
del или erase – это сама команда удаления, /key – это необязательный аргумент, а full path – полный путь к удаляемому файлу. Например, команда ниже удаляет файл test.log в папке Public на диске D:
del D:\Public\test.log
Кстати, указывать полный путь необязательно, если вы заранее перешли в папку с файлов. В этом случае указывается только команда удаления и сам файл:
del test.log
Файлы можно удалять не только по одному, но и все сразу, так, следующая команда удалит все файлы из папки Test:
del D:\Test
Будут пропущены лишь те файлы, которые имеют атрибуты «Только для чтения», «Скрытые», «Системные» и т. д. Для удаления таких файлов в команду добавляются специальные ключи, например, чтобы удалить файл с меткой «Только для чтения», в команду нужно добавить ключ /F, вот так:
del /F D:\Public\test.log
Помимо ключа /F, командой DEL поддерживает параметры /P, /S, /Q и /A. Рассмотрим их назначение чуть более подробно.
● /P – включает запрос на подтверждение удаления файла.
● /Q – отключает запрос на подтверждение удаления файла, обычно используется при удалении групп файлов.
● /A – ключ используется, когда нужно удалить группу файлов с определенными атрибутами – del /A:RH D:\Test – в результате выполнения этой команды из папки Test будут удалены все файлы с атрибутами R (только для чтения) и Н (скрытые).
● /S – если нужно удалить файлы рекурсивно, то есть не только в указанной папке, но и во всех вложенных в нее папках, добавьте в команду ключ S, вот так:
del /S D:\Test.
↑ Удаление файлов в PowerShell
В принципе, этих знаний достаточно, чтобы удалить любой несистемный файл, но рассмотренная нами тема была бы не раскрыта без упоминания о другом консольном инструменте Windows – PowerShell. Помимо поддержки ею команд DEL и ERASE, PowerShell располагает собственным командлётом для удаления объектов файловой системы. Он называется Remove-Item и имеет следующий синтаксис:
Remove-Item -Path -key
Командлёт очень похож на DEL, Path принимает значение пути к удаляемому объекту, а key – дополнительный параметр или несколько параметров. В отличие от DEL и ERASE, Remove-Item универсален и может использоваться для удаления как файлов, так и каталогов. Удалим файл test.log из папки Test:
Remove-Item -Path D:\Test\test.log
Использовать «-Path» необязательно, так как PowerShell и так понимает, что нужно делать. Папки удаляются аналогично, если нужно удалить только файлы, используется подстановочный знак, в данном случае точка перед расширением.
Remove-Item -Path D:\Test\*.*
Если путь содержит пробелы или кириллицу, его нужно взять в прямые двойные кавычки. Командлёт поддерживает около дюжины параметров, из которых вам наверняка пригодятся -Force и -Recurse.
Параметр -Force используется для принудительного удаления файлов с атрибутами «Только чтения», «Скрытый», «Архивный» и «Системный».
remove-item -path D:\Test\hiddenfile.txt -force
Параметр -Recurse служит для удаления файлов в указанной папке и всех вложенных в нее каталогах. Поскольку параметр Remove-Item в связке с командлётом -Recurse работает корректно не во всех версиях PowerShell, вместо Remove-Item лучше использовать Get-ChildItem.
Get-ChildItem -Path "D:\Test" -File -Recurse | foreach { $_.Delete()}
Обращаем внимание, что эта команда удалит все файлы из папок в директории Test мимо Корзины, такова особенность ее работы. И на этом, пожалуй, достаточно. Более подробные сведения об использовании команд DEL, ERASE и Remove-Item можно получить в самой консоли, выполнив интересующую вас команду с ключом /? в классической командной строке и get-help название-командлёта в PowerShell.