Удаление файлов из корзины
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Автоматизация Total Commander

#1: Удаление файлов из корзины Author: LocKtaR-o-DarKLocation: Москва PostPosted: Mon Jul 24, 2006 02:54
    —
CaptainFlint wrote:
Ну, кнопочки и у меня есть. Wink Удобно иногда. В основном для контекстного меню корзины держу. Smile
Есть способ, который может заставить задуматься об отключении кнопок:
-- использовать следующие кнопки
Code:
TOTALCMD#BAR#DATA
2121

explorer,3
Рабочий стол
или врукопашную командой \\ , правой кнопкой на значке корзины достигается нужное контекстное меню для очистки корзины и тд... здесь неплохо бы найти способ сразу вызывать этот диалог, но пока что есть Rolling Eyes
Code:
TOTALCMD#BAR#DATA
2127

explorer,6
Корзина
Здесь удобно будет использовать "заблокированную вкладку с возможностью смены каталога", что ползолит выборочно удалять файло из корзины самим тоталом, а не проводником

 !  Avada:
Перенесено из "Секретов и советов" в "Автоматизацию".

#2:  Author: Sam DarkLocation: Voronezh, Russia PostPosted: Tue Jul 25, 2006 08:15
    —
Проще чистить одной кнопкой. Я пользую самописную утилитку.

#3:  Author: Sam DarkLocation: Voronezh, Russia PostPosted: Tue Jul 25, 2006 12:51
    —
Zorroz wrote:
А можно что-нибудь сделать, чтобы при отчистке корзины не появлялось ДОС окно.

Можно использовать вот эту утилиту для сокрытия консольных окон:
http://rmcreative.ru/files/progs/runfile.zip

p.s. её писал не я, просто оффсайта давно не существует.


Last edited by Sam Dark on Fri Jun 06, 2008 11:49; edited 1 time in total

#4:  Author: ZorrozLocation: Россия, Иркутская обл., г. Ангарск PostPosted: Tue Jul 25, 2006 13:58
    —
2LocKtaR-o-DarK
Что-то ни одна кнопка не работает. ТС говорит что файл не найден.

#5:  Author: LocKtaR-o-DarKLocation: Москва PostPosted: Tue Jul 25, 2006 14:10
    —
Zorroz wrote:
Что-то ни одна кнопка не работает. ТС говорит что файл не найден.
тогда попробуй так
Code:
TOTALCMD#BAR#DATA
cm_OpenDesktop

explorer,3
Рабочий стол
Code:
TOTALCMD#BAR#DATA
cm_OpenRecycled

explorer,6
Корзина
проверь файл %commander_path%\*.inc

#6:  Author: ZorrozLocation: Россия, Иркутская обл., г. Ангарск PostPosted: Tue Jul 25, 2006 14:56
    —
2LocKtaR-o-DarK

Все заработало и даже первые кнопки. Просто после команды 2121 и 2127 копировались лишние пробелы. Их удаление все привело в норму.

#7:  Author: Sam DarkLocation: Voronezh, Russia PostPosted: Tue Jul 25, 2006 15:00
    —
Очистка корзины без всяких потверждений, напоминаний и консольных окон с использованием rbc и runfile:

Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\AddOn\runfile.exe
CMD=rbc.exe /c /p
Explorer.exe,6
Очистить корзину
%COMMANDER_PATH%\AddOn\

-1


Пути меняйте на свои.

#8:  Author: ZorrozLocation: Россия, Иркутская обл., г. Ангарск PostPosted: Tue Jul 25, 2006 17:04
    —
2Sam Dark
Но тогда файлы должны храниться в одной папке(AddOn). Лучше сделать так:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\util\Runfile\runfile.exe
CMD=c:\totalcmd\Plugins\util\Rbc\rbc.exe /c /p
Explorer.exe,6
Очистить корзину
%COMMANDER_PATH%\Plugins\util\Runfile\

-1

Но только путь до rbc.exe не должен содержать пробелов.

P.s. Спасибо за подсказку.

#9:  Author: Sam DarkLocation: Voronezh, Russia PostPosted: Wed Jul 26, 2006 08:41
    —
2Zorroz:
Если сделать по-твоему, при запуске TC с флэшки будут проблемы.

#10:  Author: BatyaLocation: Москва, Россия PostPosted: Wed Jul 26, 2006 09:41
    —
Даже не пробовал использовать приведенную Zorroz-ом кнопку (меня сабж не интересует), но ее лучше сделать так:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\util\Runfile\runfile.exe CMD=%COMMANDER_PATH%\Plugins\util\Rbc\rbc.exe
/c /p
Explorer.exe,6
Очистить корзину
%COMMANDER_PATH%\Plugins\util\Runfile\

-1

#11:  Author: ZorrozLocation: Россия, Иркутская обл., г. Ангарск PostPosted: Wed Jul 26, 2006 11:57
    —
2Batya
Можно и такой вариант. Именно его я и буду использовать.

#12:  Author: fundukLocation: Санкт-Петербург PostPosted: Sat Aug 05, 2006 14:30
    —
Batya wrote:
Даже не пробовал использовать приведенную Zorroz-ом кнопку (меня сабж не интересует), но ее лучше сделать так:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Plugins\util\Runfile\runfile.exe CMD=%COMMANDER_PATH%\Plugins\util\Rbc\rbc.exe
/c /p
Explorer.exe,6
Очистить корзину
%COMMANDER_PATH%\Plugins\util\Runfile\

-1
Так как раз хуже. Параметры должны быть в параметрах, а не приписаны к команде.
Хотя %COMMANDER_PATH% всё же лучше, чем прямой путь Rolling Eyes

#13:  Author: BatyaLocation: Москва, Россия PostPosted: Mon Aug 07, 2006 12:32
    —
funduk wrote:
Так как раз хуже. Параметры должны быть в параметрах, а не приписаны к команде.
Хотя %COMMANDER_PATH% всё же лучше, чем прямой путь Rolling Eyes

Вот пусть каждый и решит для себя, "что такое хорошо и что такое плохо".
ИМХО, лучше как раз использовать путь с переменными окружения, а как выглядит нутро кнопки - вторично.

#14:  Author: LocKtaR-o-DarKLocation: Москва PostPosted: Sun Oct 22, 2006 09:38
    —
Вариант:
1. Необходимо скачать утилитку nircmd (25,5 КБ (26 112 байт)) и
2. выполнить
Code:
nircmd emptybin

Консольных окон не будет Laughing

#15:  Author: VolniyLocation: Местный PostPosted: Sun Oct 22, 2006 15:42
    —
LocKtaR-o-DarK wrote:
1. Необходимо скачать утилитку nircmd (25,5 КБ (26 112 байт))

Наверное, уже обновился файл:
Quote:
http://www.nirsoft.net/utils/nircmd.zip 67 KБ (67 739 байт)

#16:  Author: LocKtaR-o-DarKLocation: Москва PostPosted: Sun Oct 22, 2006 16:22
    —
Volniy
Smile можно даунлодером выкачать только архив nircmd.zip 23,1 КБ (23 694 байт), содержащий nircmd.exe 25,5 КБ (26 112 байт), этого будет достаточно

#17:  Author: Sam DarkLocation: Voronezh, Russia PostPosted: Mon Oct 23, 2006 12:35
    —
rbc тоже обновился. Консольных окон можно теперь не показывать без сторонних программ.

#18:  Author: LocKtaR-o-DarKLocation: Москва PostPosted: Tue May 08, 2007 06:03
    —
Code:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers\{645FF040-5081-101B-9F08-00AA002F954E}]

это добавит в контекстное меню всех папок и файлов пункт "Очистить корзину"
после применения отпадает необходимость пользования для этой цели сторонними утилитами и написания кнопок для тотала

#19:  Author: Sam DarkLocation: Voronezh, Russia PostPosted: Tue May 08, 2007 10:42
    —
Не согласен. Я пользуюсь контекстным меню для других целей и лишние пункты там мне ни к чему.

#20:  Author: aLexxLocation: Новокузнецк PostPosted: Tue May 08, 2007 19:13
    —
Кстати, давно хотел спросить, а что, если установлена "Norton Protection"?
Как в этом случае очищать не только корзину, но и защищённые Нортоном файлы?

#21:  Author: LocKtaR-o-DarKLocation: Москва PostPosted: Tue May 08, 2007 21:52
    —
Sam Dark wrote:
Не согласен. Я пользуюсь контекстным меню для других целей и лишние пункты там мне ни к чему.

А я не согласен с тем, что для каждой системной операции надо держать свою утилиту, уметь ею пользоваться, правильно запускать и, наконец, тратить под нее дисковое пространство...
В общем, спорить не о чем, предлагаю вариант, выбор за пользователем.
aLexx wrote:
Кстати, давно хотел спросить, а что, если установлена "Norton Protection"?
Как в этом случае очищать не только корзину, но и защищённые Нортоном файлы?

а ты потестируй, что в этом сложного?
заодно и нам расскажешь

#22:  Author: aLexxLocation: Новокузнецк PostPosted: Fri May 11, 2007 15:33
    —
Не-а... "Очистить Козину" имеется, а вот про файлы, защищённые Норотоном, ни слова.

#23:  Author: bbcby PostPosted: Sun Sep 05, 2010 00:30
    —
А не проще ли правой кнопкой мыши по кнопке F8 в TC?

#24:  Author: FlasherLocation: Москва PostPosted: Sun Sep 05, 2010 01:20
    —
bbcby
Проще чем что? Нажатие по одной кнопке/горячей клавише?... Плюс ко всему, не все эту панель функциональных кнопок используют, т.е. она может быть попросту скрыта.
У меня такой код:
Code:
TOTALCMD#BAR#DATA
Recycle_Bin_Cleaner.exe
/h /c /p /a
Icons\Recycle-bin-empty.ico
Очистить корзину
%COMMANDER_PATH%\Utils
0
-1

#25:  Author: FlasherLocation: Москва PostPosted: Wed Jul 18, 2018 20:58
    —
Решил вытащить из закромов:
Code:
'====== VBS ======
' Очистить корзину
'===== Flasher © =
Option Explicit: Dim WSS, Par, Str, W, i, L, Title, A
Set WSS = CreateObject("WScript.Shell")
On Error Resume Next
Par = WSS.RegRead("HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\PowerShellVersion")
If Err.Number = 0 Then If Par >= "5" Then _
WSS.Run "powershell.exe -nologo -noninteractive -command Clear-RecycleBin -Force", 0 : WSH.Quit
On Error GoTo 0
Par = 1050 : Str = 8
With GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
  With .document.Application.NameSpace(10)
    If .Items.Count = 1 Then Par = 1055 : Str = 13
    .Self.InvokeVerb "Empty"
  End With : .Quit
End With
With CreateObject("CDO.Message").AddAttachment("res://shell32.dll/6/" & Par).GetDecodedContentStream
  .Type = 1
  For i = 0 To Str
    L = AscB(.Read(2)) * 2 : If L > 0 Then Title = CStr(.Read(L))
  Next
End With
With WSS
  Do : A = .AppActivate(Title) : Loop Until A
  .SendKeys "~"
End With : Set WSS = Nothing


Last edited by Flasher on Thu Jul 19, 2018 04:01; edited 3 times in total

#26:  Author: imig73Location: г. Иркутск PostPosted: Wed Jul 18, 2018 23:18
    —
Flasher
Давно мечтал такой скрипт заиметь, но строка 6 у меня не работает. 3 физ. диска с несколькими разделами Win10 x64.

#27:  Author: FlasherLocation: Москва PostPosted: Wed Jul 18, 2018 23:27
    —
imig73
А если через %SystemRoot%\SysWOW64\wscript.exe ?
На 10-ке ещё так можно:
Code:
CreateObject("WScript.Shell").Run "powershell.exe -nologo -noninteractive -command Clear-RecycleBin -Force", 0


Last edited by Flasher on Wed Jul 18, 2018 23:45; edited 1 time in total

#28:  Author: imig73Location: г. Иркутск PostPosted: Wed Jul 18, 2018 23:45
    —
Flasher
Да код выше на 10-ке работает без вопросов, но вот на 7-ке x32 уже нет. Добавить бы универсальности для XP, 7, 8 и 10 и будет шоколадно.

#29:  Author: FlasherLocation: Москва PostPosted: Wed Jul 18, 2018 23:45
    —
imig73
Так а по первому вопросу что?

#30:  Author: imig73Location: г. Иркутск PostPosted: Wed Jul 18, 2018 23:57
    —
Flasher
Через SysWOW64\wscript.exe та же ошибка как на скрине.
И ещё окно с библиотеками открывается.

#31:  Author: FlasherLocation: Москва PostPosted: Thu Jul 19, 2018 02:11
    —
imig73
В общем, скрипт поправил. Не знаю, как на 8-ке будет. Сперва хотел проверять через сам PowerShell, но понял, что так медленней. А сперва вместо 7-8 строк было:
Code:
WSS.RegRead "HKLM\SOFTWARE\Microsoft\PowerShell\" : If Err.Number = 0 Then _
If WSS.Run("powershell.exe -nologo -noninteractive -command If($Host.Version" &_
".Major -ge 5) {Clear-RecycleBin -Force} else {exit 1}", 0, 1) = 0 Then WSH.Quit

#32:  Author: imig73Location: г. Иркутск PostPosted: Thu Jul 19, 2018 03:06
    —
Flasher
Теперь на 10-ке х64 неопознанная ошибка с тем же номером, но строка 11 символ 1. Окно с библиотеками по прежнему вызывается.

На 7-ке х32 и XP x32 скрипт отрабатывает без нареканий, но на доли секунды мелькает диалог (наверное запрос на удаление).

#33:  Author: FlasherLocation: Москва PostPosted: Thu Jul 19, 2018 03:22
    —
imig73
Вообще-то он до туда не должен добираться. После выполнения команды, буфер что даст?:
Code:
cmd /c reg query HKLM\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\ /s|clip

imig73 wrote:
наверное запрос на удаление
Он самый.

#34:  Author: imig73Location: г. Иркутск PostPosted: Thu Jul 19, 2018 03:31
    —
Flasher
Данные из буфера:

Code:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine
    ApplicationBase    REG_SZ   C:\Windows\System32\WindowsPowerShell\v1.0
    ConsoleHostAssemblyName    REG_SZ    Microsoft.PowerShell.ConsoleHost, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=msil
    ConsoleHostModuleName    REG_SZ C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell.ConsoleHost.dll
    PowerShellVersion    REG_SZ    2.0
    PSCompatibleVersion    REG_SZ    1.0, 2.0
    RuntimeVersion    REG_SZ    v2.0.50727

#35:  Author: FlasherLocation: Москва PostPosted: Thu Jul 19, 2018 03:37
    —
imig73
А с этой?:
Code:
cmd /c reg query HKLM\SOFTWARE\Microsoft\PowerShell|clip

#36:  Author: imig73Location: г. Иркутск PostPosted: Thu Jul 19, 2018 03:42
    —
Flasher

Code:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell
    DisablePromptToUpdateHelp    REG_DWORD    0x1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3

#37:  Author: FlasherLocation: Москва PostPosted: Thu Jul 19, 2018 03:46
    —
imig73
И, наконец:
Code:
cmd /c reg query HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\ /s|clip

#38:  Author: imig73Location: г. Иркутск PostPosted: Thu Jul 19, 2018 03:49
    —
Flasher
А здесь вот как:
Code:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
    ApplicationBase    REG_SZ  C:\Windows\System32\WindowsPowerShell\v1.0
    ConsoleHostAssemblyName    REG_SZ    Microsoft.PowerShell.ConsoleHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=msil
    ConsoleHostModuleName    REG_SZ C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell.ConsoleHost.dll
    PowerShellVersion    REG_SZ    5.1.17134.1
    PSCompatibleVersion    REG_SZ    1.0, 2.0, 3.0, 4.0, 5.0, 5.1
    PSPluginWkrModuleName    REG_SZ   C:\Windows\System32\WindowsPowerShell\v1.0\system.management.automation.dll
    RuntimeVersion    REG_SZ    v4.0.30319

#39:  Author: FlasherLocation: Москва PostPosted: Thu Jul 19, 2018 03:53
    —
imig73
ОК. Заменил 1 на 3 в 7-й строке. Можно проверять.

Add: Точнее не совсем. Ещё кое-что добавил.

#40:  Author: imig73Location: г. Иркутск PostPosted: Thu Jul 19, 2018 04:08
    —
Flasher
В 10-ке работает хорошо, ничего не мелькает. В 7-ке просто ничего не происходит и корзина не очищается. Видимо универсальности с PS не добиться, разные они в этих ОС, да и 10-ка обновляется постоянно. Может бывает какая-нибудь маленькая утилитка для очистки корзин при запуске, чтоб не мучатся?

А добавка в скрипт была(?), сейчас скрипт ещё раз проверю... отпишусь.

Ну вы даёте Flasher, с вашими знаниями скриптов вам цены нет! Теперь работает одинаково бодро на 7, 8 и 10 без ошибок, мельканий и окон. Большое спасибо, сбылась моя давнишняя хотелка неожиданно Smile

#41:  Author: FlasherLocation: Москва PostPosted: Thu Jul 19, 2018 04:39
    —
imig73 wrote:
Может бывает какая-нибудь маленькая утилитка для очистки корзин при запуске, чтоб не мучатся?
Так выше в теме обсуждалить (rbc, nircmd emptybin). Сюда могу добавить:
RecycleNOW
EmptyRecycleBin /Q

imig73 wrote:
Теперь работает ... на 7 ... без мельканий и окон.
Это точно? Неужели там 5-й Posh стоит? Surprised

У меня в заначках ещё более древний скрипт имеется с пофайловым перебором:
Code:
' Очистить корзину
With CreateObject("Scripting.FileSystemObject")
  For Each i in CreateObject("Shell.Application").NameSpace(10).Items
    If i.Type = "File folder" Then .DeleteFolder(i.Path) Else .DeleteFile(i.Path)
  Next
End With
Он хоть и без мельканий, но будет явно медленней.

#42:  Author: imig73Location: г. Иркутск PostPosted: Thu Jul 19, 2018 05:03
    —
Flasher
Спасибо, но ваш скрипт на 993 байта мне больше по душе. Для XP и так много чего уже повыкидывал, слишком устарела она и только часто для спец. утилит годится теперь, и то редко. Отдельно для неё держать утилиту нехочу теперь.

Скрипт абсолютно точно работает на 7, 8 и 10. Дважды проверил на x32/x64. Правда в 7 х64 запрос на удаление быстро промелькивает, но это чепуха.

#43:  Author: FlasherLocation: Москва PostPosted: Thu Jul 19, 2018 05:09
    —
imig73
Ну, собственно, с этой целью и писался. С другой стороны, nircmd на помойку только по этому случаю выкидывать смысла нет. Wink

В цитате выделена только часть с мельканием. Т.е. я был прав насчёт 7-ки. ОК.
В общем, пожалуйста.

#44:  Author: imig73Location: г. Иркутск PostPosted: Thu Jul 19, 2018 05:40
    —
Flasher
nircmd утилита годная и много чего умеет, но не для тотала она у меня Smile Спасибо еще раз, надо было давно уже вас поспрашивать на счёт корзины, но не хотелось тему подымать Smile

#45:  Author: Lisabon PostPosted: Thu Jul 19, 2018 21:49
    —
Flasher
По-поводу скрипта...
Если включён в системе UAC, то получаю ошибку:
Code:
Сценарий:   C:\EmptyRecycleBin.vbs
Строка:   12
Символ:   1
Ошибка:   Невозможно создание объекта контейнером ActiveX: 'GetObject'
Код:   800A01AD
Источник:    Ошибка выполнения Microsoft VBScript

Win 7 32-bit и 64-bit, Vista 64-bit, TC v9.20 32-bit. TC запущен от админа.

#46:  Author: imig73Location: г. Иркутск PostPosted: Thu Jul 19, 2018 22:03
    —
Lisabon
У меня UAC тоже включен и никаких ошибок не вижу. Срипт не обязательно запускать от админа, он и так работает при обычном запуске из Exporer.

#47:  Author: Lisabon PostPosted: Thu Jul 19, 2018 23:03
    —
imig73
Quote:
не обязательно запускать от админа

Не обязательно, но... Если запустить от админа, то ошибка есть, а если не запускать от админа, то ошибки - нет. Это на Win 7.

Для Vista... Если не запускать от админа, то ошибка:
Code:
Сценарий:   C:\EmptyRecycleBin.vbs
Строка:   13
Символ:   3
Ошибка:   Неопознанная ошибка
Код:   80004005
Источник:    (null)

Если запустить от админа, то ошибка:
Code:
Сценарий:   C:\EmptyRecycleBin.vbs
Строка:   12
Символ:   1
Ошибка:   Невозможно создание объекта контейнером ActiveX: 'GetObject'
Код:   800A01AD
Источник:    Ошибка выполнения Microsoft VBScript

#48:  Author: imig73Location: г. Иркутск PostPosted: Thu Jul 19, 2018 23:15
    —
Lisabon
Ах Vista, ну тада не знаю у меня её нету и не могу протестировать. На 7, 8 и 10 любой разрядности ошибок нет, хоть как запускай...

#49:  Author: Skif_off PostPosted: Fri Jul 20, 2018 00:33
    —
Как-то это странно, держать целую утилиту или скрипт для очистки корзины, не? С NirCmd понятно - утилиту можно использовать не только для этого.

Очистка корзины на AutoIt, одной командой:
Code:
"%COMMANDER_PATH%\AutoIt3.exe" /AutoIt3ExecuteLine "FileRecycleEmpty()"

Очистка корзины конкретного диска, пусть будет D:
Code:
"%COMMANDER_PATH%\AutoIt3.exe" /AutoIt3ExecuteLine "FileRecycleEmpty('D:\')"

Хотя есть нюанс: требуется наличие IE4+.

#50:  Author: imig73Location: г. Иркутск PostPosted: Fri Jul 20, 2018 01:12
    —
Skif_off wrote:
Как-то это странно, держать целую утилиту или скрипт для очистки корзины, не?

Наверное всё же "не", ведь autoit3.exe это тоже утилита 732,7 KB, ИМХО скрипт на 993 байта выглядит практичней. Если уж утилита, то тогда RecycleNOW на 20 KB. Конечно если есть куча полезных скриптов для autoit, то и вопросов нет.

#51:  Author: FlasherLocation: Москва PostPosted: Fri Jul 20, 2018 01:27
    —
Skif_off wrote:
С NirCmd понятно
Что понятно? Это? :
imig73 wrote:
nircmd утилита годная и много чего умеет, но не для тотала она у меня
Про FileRecycleEmpty (в т. ч. в AHK) я прекрасно знал, но мне было даже стыдно такое предлагать, навязывая интерпретатор, в 1000 раз больший, чем скрипт...

imig73 wrote:
это тоже утилита 732,7 KB
Последняя x32 = 875 Кб и x64 = 990 Кб.
imig73 wrote:
то тогда RecycleNOW на 20 KB.
rbc вообще 10 Кб весит. Wink

#52:  Author: Skif_off PostPosted: Fri Jul 20, 2018 07:06
    —
imig73 wrote:
Наверное всё же "не", ведь autoit3.exe это тоже утилита

Естественно, нет смысла брать AutoIt ради одной команды очистки корзины и пример на AutoIt связан не с первым вопросом, а названием темы и с "утилиту можно использовать не только для этого".
У меня скриптов десятка 3 точно и, думаю, я не одинок. Или: количество скачиваний TCIMG с сайта wincmd.ru 237361, заодно пробуем
Code:
"%COMMANDER_PATH%\TCIMG\TCIMG.exe" /AutoIt3ExecuteLine "FileRecycleEmpty()"

Работает. И понятно, почему. Запуск любого скрипта:
Code:
"%COMMANDER_PATH%\TCIMG.exe" /AutoIt3ExecuteScript "%COMMANDER_PATH%\Utils\DontSleep.au3"

Т.е. если уже есть, зачем тянуть что-то ещё, на 20 КБ, 10 КБ или даже 993 Б?

Flasher wrote:
я прекрасно знал, но мне было даже стыдно такое предлагать

Как-по мне, не стыдно озвучить все варианты, как ты нередко делаешь.

#53:  Author: imig73Location: г. Иркутск PostPosted: Fri Jul 20, 2018 09:10
    —
Skif_off
Юзер сам решит что ему надо, ваш совет с Autoit имеет право на жизнь + 30 скриптов к нему. Вот у меня есть Autoit и 1 скрипт по замене текста в файлах по нескольким полям, но не пригодился за 2 года ни разу, теперь уберу вместе с интерпретатором.

Касаемо TCIMG, здесь вообще его возможности зашкаливают, но размер в почти 15 MB мне однозначно не нужен, как и сами его функции. Помню на ру-борде в теме по сборкам, сборки на 2,36GB(!) со всяким говном, и не впечатляет утилита эта такого размера с кучей не нужного в работе барахла, которое создатель запихал в 1 exe.

993 Б тянуть не надо, им пользуешся уже второй день и не замечаешь его совсем.

Варианты нужно озвучить все, против никто не будет и как уже написал "Юзер сам решит что ему надо".

#54:  Author: FlasherLocation: Москва PostPosted: Fri Jul 20, 2018 10:36
    —
Skif_off
Я смотрю, ты в провокаторы заделался. Есть ряд скриптовых языков, но ты из них всех тянешь именно AutoIt и выдаёшь его с позиции, что лучше для остальных. И кому тут интересно какое-то липовое кол-во скачиваний, из которого в лучшем случае 0.0005% реальных пользователей? Спецом для тебя.

Skif_off wrote:
Т.е. если уже есть, зачем тянуть что-то ещё, на 20 КБ, 10 КБ или даже 993 Б?
Если есть. А если нет? Ты сам понимаешь, что это глупый вопрос, в котором сравниваемое может быть переставлено местами? Ты понимаешь, что то, о чём ты пишешь, это пакет из 100+ файлов, которые тоже надо "тянуть"? (рит.)

Skif_off wrote:
как ты нередко делаешь.
Приведи хоть один пример. Тебя за язык никто не тянул.
Хочешь заняться публикацией всех решений, так вперёд. Есть ещё по меньшей мере 100 вариантов на всяких языках. Ждём твоих изысканий.

#55:  Author: CaptainFlintLocation: Москва PostPosted: Fri Jul 20, 2018 16:06
    —
Перепалку прекращаем. Альтернативные решения в разумных пределах предлагать не возбраняется, а кому надо, будет сам выбирать, какие из вспомогательных инструментов ему влом скачивать, а какие не влом.

#56:  Author: FlasherLocation: Москва PostPosted: Fri Jul 20, 2018 18:15
    —
Lisabon
Тогда так:
Code:
'====== VBS ======
' Очистить корзину
'===== Flasher © =
Option Explicit: Dim RBin, Old, Par, Str, i, L, Title, A
Set RBin = CreateObject("Shell.Application").NameSpace(10)
With CreateObject("Scripting.FileSystemObject")
  Old = .GetFileVersion(.GetSpecialFolder(1) & "\shell32.dll") < "6.0.6"
  If Old Then Par = 625 : Str = 6 Else Par = 1050 : Str = 8
  If RBin.Items.Count = 1 Then
    If .FileExists(RBin.Items.Item(0).Path) Then
      If Old Then Par = 1042 : Str = 9 Else Par = 1055 : Str = 13
    Else
      If Old Then Par = 1043 : Str = 3 Else Par = 1056 : Str = 4
    End If
  End If
End With
RBin.Self.InvokeVerb "Empty"
With CreateObject("CDO.Message").AddAttachment("res://shell32.dll/6/" & Par).GetDecodedContentStream
  .Type = 1
  For i = 0 To Str
    L = AscB(.Read(2)) * 2 : If L > 0 Then Title = CStr(.Read(L))
  Next
End With
With CreateObject("WScript.Shell")
  Do : A = .AppActivate(Title) : Loop Until A
  WSH.Sleep 10 : .SendKeys "~"
End With
While RBin.Items.Count : WSH.Sleep 400 : Wend
Set RBin = Nothing
Либо:
Code:
'=================
' Очистить корзину
'=================
Set RBin = CreateObject("Shell.Application").Namespace(10)
With CreateObject("Scripting.FileSystemObject")
  While RBin.Items.Count
    Path = .GetParentFolderName(RBin.Items.Item(0).Path)
    .DeleteFolder Path & "\*", 1 : .DeleteFile Path & "\*", 1
  Wend
End With
Set RBin = Nothing


Last edited by Flasher on Sat Jul 21, 2018 16:26; edited 2 times in total

#57:  Author: Lisabon PostPosted: Fri Jul 20, 2018 21:58
    —
Flasher
Quote:
Тогда так:

На Win XP выскакивает стандартное окно подтверждения очистки корзины. Это окно висит и ждёт выбора пользователя. Если нажать нет, то выскакивает ошибка:
Code:
Сценарий:   C:\EmptyRecycleBin.vbs
Строка:   9
Символ:   1
Ошибка:   Указанное имя ресурса не найдено в файле образа.

Код:   80070716
Источник:    CDO.Message.1

Если нажать да, то корзина очищается, но через некоторое время выскакивает, выше указанная ошибка.
Нужен ли чтобы в системе установлен какой-то компонент?
С другими операционками, проблем пока не увидел.


Last edited by Lisabon on Sat Jul 21, 2018 16:51; edited 4 times in total

#58:  Author: imig73Location: г. Иркутск PostPosted: Fri Jul 20, 2018 22:11
    —
Flasher
Да, скрипт на этой странице без PS ещё более универсален и работает на XP и 2k3 с оговорками. Выдаётся запрос на удаление, корзина очищается и выдаётся ошибка

которую просто закрываю. На 7, 8 и 10 ошибок и вопросов нет.

#59:  Author: FlasherLocation: Москва PostPosted: Fri Jul 20, 2018 22:16
    —
Lisabon
imig73
Cкиньте свои %WinDir%\SYSTEM32\ru-RU\shell32.dll.mui.
В т. ч. для 2k3.

imig73
См. п. 2 снизу.
imig73 wrote:
На 7-ке х32 и XP x32 скрипт отрабатывает без нареканий
А теперь с оговорками? Smile

#60:  Author: imig73Location: г. Иркутск PostPosted: Sat Jul 21, 2018 00:15
    —
Flasher
У меня в XP и 2k3 в System32 нет файла shell32.dll.mui (Версии ОС изначально русские).
Flasher wrote:
А теперь с оговорками

Не совсем понял Smile Скрипт без PS с этой страницы универсальней и работает везде хорошо, кроме недочёта описанного мной для XP и 2k3 и Lisabon выше.

p.s. Отвечать довольно сложно, сайт постоянно падает и глючит...

#61:  Author: FlasherLocation: Москва PostPosted: Sat Jul 21, 2018 03:11
    —
imig73
Да, с висами сайта прям беда какая-то (уже которую неделю).
Насчёт 2k3 я пока сомневаюсь, что получится. Мне нужен её system32\shell32.dll.
Вроде бы для XP поправил. Проверяйте.
На всех системах желательно проверить при наличии в корзине только одного файла, только одной папки или двух и более объектов. На XP можно ещё с одним ярлыком проверить.

И что вы оба так не хотите последний silent-вариант использовать? Прогресс так сильно нужен? Smile

#62:  Author: imig73Location: г. Иркутск PostPosted: Sat Jul 21, 2018 03:55
    —
Flasher
Всё, работает в XP/7/8/10 и 2k3 без ошибок с любым количеством объектов. В XP и 2k3 выдаётся запрос на удаление (это нормально) , в остальных работает тихо. При отмене удаления так же ошибок нет. В Vista проверить немогу, пусть Lisabon проверит.

Тут как говорится чем дальше в лес, тем больше дров. Но когда скрипт форcает везде, это приятно Smile

p.s. Shell32 от 2к3 пока не высылаю, всё работает...

#63:  Author: FlasherLocation: Москва PostPosted: Sat Jul 21, 2018 04:37
    —
imig73 wrote:
В XP и 2k3 выдаётся запрос на удаление (это нормально) , в остальных работает тихо.
Не понял. Запрос везде должен мелькать. В первых двух случаях он остаётся висеть? Если да, то это как раз ненормально, и wscript.exe надо убивать в процессах. Нужно уточнение.
Случаем, не первая версия выполняется?

#64:  Author: imig73Location: г. Иркутск PostPosted: Sat Jul 21, 2018 06:15
    —
Flasher
Ну ОК, уточняю: в XP при очистке корзины скриптом, запрос на удаление появляется один раз и не исчезает пока не ответишь, при последующих очистках корзины диалог просто мелькает (т. е. закрывается сам). В 2к3 диалог появляется всегда и висит пока не ответишь. В остальных ОС я просто не замечаю никаких мельканий, возможно их нет.

Мне кажется сейчас скрипт выполняет свои функции хорошо и без ошибок.

p.s. Мало того что сообщение отправляется по 4 мин. и больше, так ещё и спам-система меня не пропускает. Ужас.

#65:  Author: FlasherLocation: Москва PostPosted: Sat Jul 21, 2018 12:51
    —
imig73
Скиньте shell32.dll из XP и 2k3.
На XP+ давайте попунктно с условиями по количеству, о которором я писал выше.

Загляните в процессы диспетчера задач. Там при зависании (это и есть ошибка) и самостоятельном закрытие диалога должны оставаться висеть wscript.exe. Их нужно прибивать, пока мы не разрешим проблему.

Заголовки сообщений подтверждения в XP при каждом условии всегда начинаются с "Подтверждение удаления ..." ?
А на Win2k3?

Со спам-системой все вопросы к админу, я тоже с неё обплевался. Порой по 3 раза надо жать отправку.

#66:  Author: Lisabon PostPosted: Sat Jul 21, 2018 16:20
    —
Flasher
Последний вариант скрипта, на Win XP ошибки нет, но диалог подтверждения очистки - есть. Далее в диалоге вручную жму на "Да". Корзина очищается и в процессах висит wscript.exe. Прибиваю процесс wscript.exe и снова пробую использовать скрипт - всё остаётся без изменений.
Нашёл кое-что интересное. Если перед использованием скрипта, будет висеть в процессах wscript.exe, то диалог подтверждения очистки - уже нет, а это то, что нужно.

Quote:
Скиньте shell32.dll из XP

Ссылка

Quote:
Заголовки сообщений подтверждения в XP при каждом условии всегда начинаются с "Подтверждение удаления ..." ?

Да.

Quote:
И что вы оба так не хотите последний silent-вариант использовать? Прогресс так сильно нужен?

Это который отсюда после "Либо:" ?
С ним проблемы с изменением статуса корзины после очистки, тобишь значок не меняется с полной корзины на пустую.


Last edited by Lisabon on Sat Jul 21, 2018 16:34; edited 1 time in total

#67:  Author: FlasherLocation: Москва PostPosted: Sat Jul 21, 2018 16:32
    —
Lisabon wrote:
Если перед использованием скрипта, будет висеть в процессах wscript.exe, то диалог подтверждения очистки - уже нет, а это то, что нужно.
Вот это полезная информация. Тогда dll от XP уже не требуется. Код я уточнил. Если опять диалог останется (без прежних wscript, разумеется), в 26 строке 10 увеличивай вперёд по 10, пока не увидишь нужного результата, не забывая при этом гасить процессы в диспетчере.

Lisabon wrote:
Да.
А если один lnk-ярлык закинуть, какое целиком сообщение будет? И с url-ярлыком как?

Lisabon wrote:
С ним проблемы с изменением статуса корзины
Тоже мне беда. В корзину заходим по cm_OpenRecycled, а в тулбаре значок удаления. На столе то его зачем держать?

#68:  Author: Lisabon PostPosted: Sat Jul 21, 2018 16:50
    —
Flasher
Quote:
в 26 строке 10 увеличивай вперёд по 10, пока не увидишь нужного результата

Пробовал значение 10000, ничего не меняется.

#69:  Author: FlasherLocation: Москва PostPosted: Sat Jul 21, 2018 16:56
    —
Lisabon wrote:
Пробовал значение 10000, ничего не меняется.
Вот этого делать не надо, иначе будешь ждать 10 секунд. Тут потолок - это 100, и то много.
По 10 предлагалось прибавлять, а не 0-и дописывать. Very Happy

По ярлыкам что?

#70:  Author: Lisabon PostPosted: Sat Jul 21, 2018 17:20
    —
Flasher
Quote:
Тут потолок - это 100

Сначала пробовал с 10 увеличивать по 10. Дошёл 100 и результата - нет.
Quote:
По 10 предлагалось прибавлять, а не 0-и дописывать.

Это понятно и так. Просто попробовал большое значение, когда малые значения надоели.
Quote:
По ярлыкам что?

URL-ярлык:
Code:
Вы действительно хотите удалить "URL - Ярлык"?

lnk-ярлык:
Code:
Вы действительно хотите удалить "lnk-Ярлык"?

URL-ярлык+lnk-ярлык:
Code:
Вы действительно хотите удалить эти объекты (2 шт.)?

#71:  Author: FlasherLocation: Москва PostPosted: Sat Jul 21, 2018 17:27
    —
Lisabon
Пардон, не то запросил. Не сообщения, а заголовки диалога.

Quote:
то диалог подтверждения очистки - уже нет
А это происходит с новой версией?
И как скрипт ведёт себя с одним файлом/каталогом?

#72:  Author: Lisabon PostPosted: Sat Jul 21, 2018 17:47
    —
Flasher
Quote:
а заголовки диалога

Для URL-ярлыка и lnk-ярлыка, сообщение одно и тоже:
Code:
Подтверждение удаления файла

URL-ярлык+lnk-ярлык:
Code:
Подтверждение удаления группы файлов

Quote:
А это происходит с новой версией?

Да. Причём на Win XP 32-bit - это прокатывает, а на Win XP 64-bit Eng - это уже не прокатывает.
Quote:
как скрипт ведёт себя с одним файлом/папкой

Одинаково.

#73:  Author: FlasherLocation: Москва PostPosted: Sat Jul 21, 2018 17:58
    —
Lisabon
Ещё и x64 проверяешь. Surprised На виртуалке, поди?
Короче, я понял, что мне нужно до XP добраться, т. к. причины сего поведения пока неясны. Логика ломается.

#74:  Author: Lisabon PostPosted: Sat Jul 21, 2018 18:10
    —
Flasher
Quote:
На виртуалке, поди?

Да. Держать приходится небольшой зоопарк осей.

#75:  Author: FlasherLocation: Москва PostPosted: Sat Jul 21, 2018 18:37
    —
Lisabon
Ясно. Кстати, фокус в этом диалоге всегда на кнопке "Да"?

#76:  Author: Lisabon PostPosted: Sat Jul 21, 2018 19:10
    —
Flasher
Quote:
всегда на кнопке "Да"

Да.

#77:  Author: imig73Location: г. Иркутск PostPosted: Sat Jul 21, 2018 23:31
    —
Flasher
Текущий вариант не работает на 10-ке.


Last edited by imig73 on Mon Jul 23, 2018 03:14; edited 1 time in total

#78:  Author: FlasherLocation: Москва PostPosted: Sun Jul 22, 2018 00:22
    —
imig73
"Не работает" мне ничего не даст. Кроме этого добавить нечего? Сопроводительный текст ошибки, оставшийся диалог и wscript в процессах? Хоть что-то?


Last edited by Flasher on Mon Jul 23, 2018 03:26; edited 2 times in total

#79:  Author: imig73Location: г. Иркутск PostPosted: Sun Jul 22, 2018 00:40
    —
Flasher
Странно, теперь работает. Не работающий вариант я уже удалил.


Last edited by imig73 on Mon Jul 23, 2018 03:35; edited 1 time in total

#80:  Author: FlasherLocation: Москва PostPosted: Sun Jul 22, 2018 18:46
    —
imig73
Может, путаница с вариантами возникла. Бывает.


Last edited by Flasher on Mon Jul 23, 2018 04:54; edited 2 times in total

#81:  Author: Skif_off PostPosted: Sun Jul 22, 2018 19:01
    —
Вау. Если вдруг у кого обострение мнительности, что-то, куда-то и откуда-то тянет, то лучше проигнорируйте этот пост.
 Hidden text


Сегодня бодался с одним скриптом для AkelPad, он меня забодал, но внезапно попытался вспомнить, можно ли использовать в VBScript вызовы WinAPI и функции прочих библиотек из коробки... Не вспомнил, но пришла идея, за которую буду требовать отдельную палату в Кащенко, - очистить корзину с помощью... AkelPad
Code:
%COMMANDER_PATH%\Utils\AkelPad\AkelPad.exe /NewInstance /MainClass("AkelPad4 - %d") /Show(0) /Call("Scripts::Main", 7, `AkelPad.SystemFunction().Call("shell32::SHEmptyRecycleBinW", 0, "", 0x07)`) /Quit

Выбрано удаление без подтверждения, без прогресса и без звука, можно изменить, заменив 0x07 на иную сумму флагов:
SHERB_NOCONFIRMATION = 0x01
SHERB_NOPROGRESSUI = 0x02
SHERB_NOSOUND = 0x04
Должно работать на Win2000 и выше.

Как можно заметить, на всякий случай в /MainClass добавлена переменная %d, поэтому если помещать все параметры в поле параметров ТС, то требуется удвоить символ процента - %%d.

#82:  Author: FlasherLocation: Москва PostPosted: Sun Jul 22, 2018 20:31
    —
Обострение склероза после "зачем тянуть что-то ещё" комментировать не стану, но раз тут до API добрались, то вставлю нужные 5 копеек:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\winapiexec\winapiexec.exe shell32.dll@SHEmptyRecycleBinW 0 0 1

shell32.dll,31
Очистить корзину
Скачать. 3 Кб, ребята, — АГА.
Спасибо напомнили. А то кнопок с ней понаделал, а про корзину даже не вспомнил.

#83:  Author: imig73Location: г. Иркутск PostPosted: Mon Jul 23, 2018 02:11
    —
Flasher
А какие ещё интересные кнопки с ней бывают?

#84:  Author: FlasherLocation: Москва PostPosted: Mon Jul 23, 2018 02:27
    —
 imig73


Last edited by Flasher on Mon Jul 23, 2018 02:31; edited 1 time in total

#85:  Author: AvadaLocation: Россия, Саратов PostPosted: Mon Aug 13, 2018 06:19
    —
JKT
За мат и флуд — строгое предупреждение. Предыдущий пост (якобы ответ на сообщение трёхнедельной давности) удалён. Что будет дальше при рецидиве, написано в правилах. И вообще словоблудие (похоже, не вполне трезвое) в разных темах пора заканчивать, надоело. Этот форум не для подобных "развлечений".



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group