Войти

Показать полную графическую версию : скрипт для удаления в корзину


Diman625
16-05-2021, 13:52
У меня есть такой через командную строку

taskkill /f /im uTorrent.exe
del C:\Users\007\Desktop\123\*.torrent
cd /d C:\Users\007\Desktop\"123"\ && rmdir /s /q .

но он удаляет все без возможности восстановить
а я хочу чтобы он удалял в Корзину (чтобы если понадобилось восстановить )

нашел вот такой скрипт
этот удаляет только папку в корзину
Add-Type -AssemblyName Microsoft.VisualBasic
[Microsoft.VisualBasic.FileIO.FileSystem]::Deletedirectory('C:\Users\007\Desktop\111','OnlyErrorDialogs','SendToRecycleBin')

а этот удаляет только файл в корзину
Add-Type -AssemblyName Microsoft.VisualBasic
[Microsoft.VisualBasic.FileIO.FileSystem]::DeleteFile('e:\test\test.txt','OnlyErrorDialogs','SendToRecycleBin')

а мне надо было чтобы скрипт удалял отдельно файлы которые находятся в папке в корзину
если есть у кого то можно еще скрипт который удаляет определенный формат в корзину
и другой скрипт чтобы удалял уже папки и под папки месте с файлами которые находятся в папке в корзину

Нашел вот такой он удаляет все файлы в папке и под папках остаются только пустые папки, но он удаляет без возможности восстановить
Get-ChildItem -Path C:\Users\007\Desktop\111 -Include *.* -File -Recurse | foreach { $_.Delete()}

DJ Mogarych
16-05-2021, 14:15
https://superuser.com/questions/24662/what-is-the-command-line-way-of-sending-files-to-the-recycle-bin

YuS_2
16-05-2021, 15:22
Powershell удалит в корзину файл c:\temp\temp.tmp
$obj = new-object -com Shell.Application
$pth = 'c:\temp\temp.tmp'
$item = $obj.namespace(0).parsename($pth)
$item.invokeverb('delete')

Diman625
16-05-2021, 16:08
DJ Mogarych,
я сайтов 20-30 просмотрел готового решения не нашел
я не сильно в этом шарю так что
нахожу что подходящее но удаленный файл не появляется в корзине

YuS_2,
мне бы что бы он удалял то один файл а все файлы формата c:\temp\*.tmp

YuS_2
16-05-2021, 19:26
мне бы что бы он удалял то один файл а все файлы формата c:\temp\*.tmp »
изучать надо powershell...
вот функция:
function remove-itemtorecyclebin {
param(
[Parameter(ValueFromPipeline)]
[ValidateNotNullOrEmpty()]
$a
)
process {
foreach ($item in $a) {
$pth = if ($item.fullname){$item.fullname} else {
(gi $item).fullname
}
if (test-path -lit $pth){
$obj = new-object -com Shell.Application
$del = $obj.namespace(0).parsename($pth)
$del.invokeverb('delete')
}
}
}
}

$path = 'c:\temp\*'

#если требуется рекурсивное удаление всех файлов:
#dir $path -file -rec -force|remove-itemtorecyclebin

#если требуется удаление файлов определенного типа:
#dir $path -incl '*.tmp' -rec -force|remove-itemtorecyclebin

#если требуется удаление только каталогов с их содержимым:
#dir $path -dir -force|remove-itemtorecyclebin

#если требуется удаление и каталогов с их содержимым, и файлов:
dir $path -force|remove-itemtorecyclebin

greg zakharov
16-05-2021, 22:30
YuS_2, вариант с COM: 1) требует явного освобождения ресурсов, 2) локалезависим, 3) не всегда корректно воспринимает юникод. Поэтому лучше: 1) взять адрес SHFileOperation из виртуальной памяти pwsh, 2) создать делегата для указанной функции, 3) радоваться жизни.
Также есть не очень популярный метод перемещения:
Move-Item C:\somedir\somefile.docx "C:\`$RECYCLE.BIN\$([Security.Principal.WindowsIdentity]::GetCurrent().User.Value)"
Почему сиё не нравится многим? Файл может не отражаться в проводнике корзины. Тогда придётся ещё раз ударить в бубен, призвав на помощь rundll32.

DJ Mogarych
17-05-2021, 09:23
А какой вообще смысл удалять в корзину скриптом? Место на диске не освобождается.
Копируйте скриптом в другой каталог (что по сути то же самое), или не удаляйте вообще.
Удаляйте только то, что точно уже не нужно.

greg zakharov
17-05-2021, 17:13
Место на диске не освобождается.А Кэпу какбы невдомёк, что корзина может использоваться как загашник? Поверьте, так можно.

Diman625
17-05-2021, 22:44
я его установил вчера ))) чисто из за этой функции удаления в корзину
вроде все то что я искал


$path = 'c:\temp\*'
#если требуется рекурсивное удаление всех файлов:
#dir $path -file -rec -force|remove-itemtorecyclebin
#если требуется удаление файлов определенного типа:
#dir $path -incl '*.tmp' -rec -force|remove-itemtorecyclebin
#если требуется удаление только каталогов с их содержимым:
#dir $path -dir -force|remove-itemtorecyclebin
#если требуется удаление и каталогов с их содержимым, и файлов:
dir $path -force|remove-itemtorecyclebin »


но что то не понятно что на что менять ))

Diman625
18-05-2021, 05:37
А какой вообще смысл удалять в корзину скриптом? Место на диске не освобождается.
Копируйте скриптом в другой каталог (что по сути то же самое), или не удаляйте вообще.
Удаляйте только то, что точно уже не нужно. »
пользуюсь скриптом для удаления папки с торрент файлами и загрузками
что бы не удалять по 10 файлов а просто скрипт нажал и папка пуста
иногда подводит )) удаляю почти за груженые файлы или торрент файл загрузки (и приходится за нова качать)
так что корзина это промежуточный этап перед удалением))

Iska
18-05-2021, 06:27
Diman625, а просто в клиенте выставить параметр «Удалять в Корзину» — не?!

Diman625
18-05-2021, 20:28
а просто в клиенте выставить параметр «Удалять в Корзину» — не?!»
если про свойства корзины то у меня стоит

Iska
19-05-2021, 16:56
если про свойства корзины »
Нет. Я не про Проводник. Я про клиента torrent. Есть в Вашем клиенте такое?

Например:
https://i.imgur.com/XEAUDea.png

Diman625
19-05-2021, 19:26
Iska, я пользуюсь UTorrent версией 3,1 не помню есть тут реклама или нет

я ее как то отключил
тут такой настройки нету
но я увидел название программы Transmission смотрю обзор на youtube попробую протестировать ))


попробовал удалил его через час или меньше)))
качал мелкие файлы

файлы уже скачаны он пишет что еще не качал даже

добавление файлов тоже так себе под глючивает то добавляет то нет

Iska
19-05-2021, 20:38
Iska, я пользуюсь UTorrent версией 3,1 не помню есть тут реклама или нет »
2.x — наше фсё. Впрочем, я для себя решил вопрос окончательно именно переходом на Transmission.

Да, аналогичной настройки — сразу в Корзину — там нет, но есть такая:https://i.imgur.com/6ZPRYE5.png
И само загруженное содержимое по умолчанию также удаляется в Корзину:https://i.imgur.com/lAu4CdU.png




© OSzone.net 2001-2012