Команда CMD для удаления файлов и помещения их в корзину?

Есть ли консольная команда "del" для удаления файлов из папки и помещения их в корзину? Команда del удалит файлы, а не в корзину.


person David.Chu.ca    schedule 29.10.2009    source источник
comment
Тот же вопрос в SuperUser содержит большинство этих и других ответов. Но, как я уже предупреждал, вы должны знать, что большинство решений могут дать сбой с файлами с символами Unicode/нелатинскими символами в именах файлов, даже с программами, поддерживающими Unicode, потому что сама командная строка не подходит для нелатинских символов. символов, иногда даже при смене кодовой страницы. :-\   -  person Synetech    schedule 09.05.2020


Ответы (10)


В коллекции есть командная часть recycle.exe, называемая cmdutils.

«Recycle.exe — это безопасная замена команды DEL, которая отправляет файлы в корзину, а не удаляет их. Recycle также является более гибким, чем DEL; вы можете указать несколько файлов одновременно (или использовать подстановочные знаки)».

Доступно по адресу http://www.maddogsw.com/cmdutils
(последнее обновление инструмента — май 2000 г.)

Существует "DeleteXP.exe" для удаления файлов из командной строки в Windows (Windows 9x и Windows NT 4.0/2000/XP). В отличие от стандартной команды «DEL», которая удаляет только файл, Delete XP удаляет файлы и отправляет их в корзину. Файлы, которые необходимо удалить, передаются ему в качестве параметров. Теперь он поддерживает /p и добавляет две новые опции /a /d /v.

Как и команда "del" в Windows NT/2000/XP, Delete XP поддерживает несколько имен файлов в качестве параметров даже в Windows 9x.

Доступно по адресу http://downloads.easytools.com/Freebies/DeleteXP.zip
(Последнее обновление инструмента в сентябре 2004 г.)

Существует "recycle.exe" (другой разработчик, чем maddogsw):

C:\>recycle /?
Version 1.11, Copyright (C)2001 Frank P. Westlake
Deletes one or more files by sending them to the Recycle Bin, if possible.

RECYCLE [/PFQ] [/A[[:]attributes]] [[drive:][path]filename

[drive:][path]filename
Specifies the file(s) to delete. Specify multiple files by using wildcards.
/P Prompts for confirmation before deleting each file.
/F Force deleting of read-only files.
/Q Quiet mode, do not ask if ok to delete on global wildcard
/A Selects files to delete based on attributes
    attributes R Read-only files 
    S System files
    H Hidden files 
    A Files ready for archiving
    - Prefix meaning not

Доступно по адресу http://web.archive.org/web/20071026113307/http://gearbox.maem.umr.edu/batch/f_w_util/
http://gearbox.maem.umr.edu/batch/f_w_util/
http://gearbox.maem.umr.edu/batch/f_w_util/recycle.zip
(последнее обновление инструмента — январь 2001 г.)

Кстати, если вы хотите очистить корзину для повторной загрузки из командной строки, «cmdutils» имеет команду «bin»:

bin /empty /force
person Chris    schedule 29.10.2009
comment
Информация о команде del неверна — вы можете удалить несколько файлов и использовать подстановочные знаки с del. - person Hashim Aziz; 21.08.2017
comment
Не совсем, было время, когда он не поддерживал подстановочные знаки. - person Hello World; 21.02.2020

Без внешних программ - deleteJS.bat. Он использует метод глагола Shell.Application вызова. использование простое:

call deleteJS.bat c:\someFile.txt
call deleteJS.bat d:\someFolder
person npocmaka    schedule 21.04.2015

recycle.exe -f apple.jpg с http://www.maddogsw.com/cmdutils/ по-прежнему работает.

Март 2014 г., Windows7 x64, между прочим, ограниченные права учетной записи UAC. Также протестировано с некоторыми именами файлов Umlaut. Файлы отображаются в корзине и имеют правильный путь восстановления.

person Frank Nocke    schedule 20.03.2014

Если у вас установлен узел, вы можете добавить модуль «trash. Работает на OS X, Linux и Windows.

$ npm install -g trash

Оттуда, когда вы хотите отправить файл в корзину, вам просто нужно ввести:

$ trash file.txt
person Michael S.    schedule 21.05.2015
comment
Предложенная вами команда установки не сработала. Вместо этого это сработало: npm install --global trash-cli Ссылка: npmjs.com/package/trash - person narF; 26.07.2017

Вот сторонняя программа.

http://www.watchingthenet.com/send-deleted-files-to-the-recycle-bin-when-using-windows-command-prompt.html

Примечание: я не пробовал.

person Daniel A. White    schedule 29.10.2009
comment
OK. похоже, что нет встроенной команды, которую я мог бы использовать в пакетном коде. - person David.Chu.ca; 29.10.2009

Сценарий летучей мыши, который выдает copy и del, был бы простым решением...

person Niels Castle    schedule 29.10.2009
comment
Мне действительно интересно, как вы могли сделать это с del и copy, решение с move, см. здесь - person ST3; 17.07.2014
comment
Это может подразумевать настройку собственной папки корзины и перемещение файлов в нее с помощью файла cmd. Было бы довольно легко добавить отметку даты к имени перемещаемого файла. Вам нужно будет периодически очищать эту папку вручную, как и корзину Windows. - person Skip R; 23.01.2015
comment
Я надеюсь, это подразумевает создание фальшивой корзины, поскольку файлы в реальной корзине называются, например. C:\$Recycle.Bin\S-1-5-21-983910293-0978783143-9801237884-1001\$RIUIFOK . Случайное копирование/перемещение файлов в структуру каталогов Windows кажется неразумным. Кроме того, он не может знать дату удаления или исходное местоположение. Изменить: stackoverflow.com/questions/1646425/ указывает, что файлы, «введенные» в структуру каталога корзины путем перемещения/копирования, вообще не отображаются в корзине. в проводнике Windows. - person WalterGR; 13.01.2016
comment
Кроме того, Корзина — это не просто обычный каталог, она содержит базу данных своего содержимого. Помещение вещей в него вручную означает, что вы не сможете просмотреть/восстановить/удалить их из папки «Корзина». - person Synetech; 09.05.2020

Во всех ответах предлагается использовать сторонние инструменты, но вы можете использовать простой move, вам просто нужно определить правильный путь к корзине.

В XP это C:\RECYCLER, в Vista и более поздних версиях C:\$Recycle.bin. Однако это еще не все, это просто основная папка, но она содержит подпапки, и это настоящие корзины, в которые вам нужно переместить файл.

Например, на моей машине этот путь:

c:\$Recycle.Bin\S-1-5-21-1291211594-1566655150-3201569215-1000

person ST3    schedule 17.07.2014
comment
Если вы сделаете это и просмотрите Корзину в списке папок в проводнике Windows, имя перемещенного файла не будет отображаться в списке имен файлов (попробовал в моей системе Win XP), даже если он находится на C :\RECYCLER\‹sid›. Параметр «Очистить корзину» не удаляет файлы, созданные с помощью этого метода. Однако вы можете открыть C:\RECYLER\‹sid› в проводнике Windows, и Очистить корзину ДЕЙСТВИТЕЛЬНО удалит этот файл в этой папке. - person Skip R; 23.01.2015
comment
Перемещать файлы вручную в папку «Корзина» — ПЛОХАЯ идея. Корзина — это не просто папка, это папка системной оболочки, в которой хранится список удаленных файлов в INFO файле. Если вы вручную поместите в него файлы, то бин их не увидит и вы не сможете их восстановить. - person Synetech; 04.03.2017
comment
Но вы можете восстановить их вручную, точно так же, как вы вручную переместили их туда, верно? - person Fabian Röling; 07.11.2017
comment
@FabianRöling, может быть, а может и нет. Это зависит от того, какие программы что с ним сделали. В любом случае, вы не должны возиться с этим вручную. - person Synetech; 09.05.2020
comment
Мой предыдущий комментарий был 2,5 года назад, с тех пор я перешел на Linux. И по иронии судьбы я недавно внедрил там пользовательскую функцию корзины, но она на самом деле правильно переименовывает файл, если есть конфликт имен, и создает .trashinfo файлов, необходимых для восстановления. - person Fabian Röling; 09.05.2020
comment
@FabianRöling Да. Я переместил тестовый файл, затем удалил его, все в порядке. - person Unknow0059; 05.12.2020

Хорошо, это очень старый поток, но у этого решения есть несколько свойств, которые не рассматриваются в других ответах:

  • Он использует PowerShell с двумя статическими методами COM-объекта Microsoft.VisualBasic, чтобы разрешить удаление папок и файлов без подтверждения (поэтому его можно использовать без сторонних утилит и запускать без присмотра).
  • Это позволяет передавать подстановочные знаки, поэтому удаление нескольких файлов происходит не так медленно.

Вставьте этот однострочник в файл с именем recycle.bat (чтобы вы могли легко вызвать его из командной строки):

@powershell.exe -nologo -noprofile -Command "& {Add-Type -AssemblyName 'Microsoft.VisualBasic'; Get-ChildItem -Path '%~1' | ForEach-Object { if ($_ -is [System.IO.DirectoryInfo]) { [Microsoft.VisualBasic.FileIO.FileSystem]::DeleteDirectory($_.FullName,'OnlyErrorDialogs','SendToRecycleBin') } else { [Microsoft.VisualBasic.FileIO.FileSystem]::DeleteFile($_.FullName,'OnlyErrorDialogs','SendToRecycleBin') } } }"
person Eelco L.    schedule 08.02.2021

Это зависит от того, где находится файл (и будет работать только для файла). Сначала он открывает папку, затем имитирует ввод с клавиатуры — выбирает файл, а затем выполняет команду «удалить» с помощью клавиши del. Чтобы избежать ошибок, сценарий настроен на паузу в течение нескольких секунд перед следующей командой.

set shell = CreateObject("Shell.Application")
shell.Open "C:\Users\server\Desktop"
set wshShell = CreateObject("WScript.Shell")
wscript.Sleep 200
wshShell.SendKeys "testfile"
wshShell.SendKeys "{DEL}"
wscript.Sleep 100
wshShell.SendKeys "%{F4}"

Я написал этот код в Блокноте, а затем сохранил его с расширением файла (.vbs). Затем добавил его в мой пакетный файл, используя

wscript "%~dp0filename.vbs"

Обратите внимание, что два файла (.bat и .vbs) необходимо поместить в одну и ту же папку, в противном случае укажите расположение (.vbs) в файле .bat, если он находится в другом каталоге.

person ibnlanre    schedule 18.08.2017
comment
Это не решение с командной строкой или сценарием, это решение для автоматизации с графическим интерфейсом, которое на самом деле не то, о чем просят. - person Synetech; 09.05.2020

Вы можете попробовать RecycleIt. Он будет отправлять файлы в корзину Windows через командную строку.

--Майк

person Michael Weiner    schedule 15.01.2018