Удаление файлов из корзины

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

imig73
В общем, скрипт поправил. Не знаю, как на 8-ке будет. Сперва хотел проверять через сам PowerShell, но понял, что так медленней. А сперва вместо 7-8 строк было:

Код: Выделить всё

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
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Flasher
Теперь на 10-ке х64 неопознанная ошибка с тем же номером, но строка 11 символ 1. Окно с библиотеками по прежнему вызывается.

На 7-ке х32 и XP x32 скрипт отрабатывает без нареканий, но на доли секунды мелькает диалог (наверное запрос на удаление).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

imig73
Вообще-то он до туда не должен добираться. После выполнения команды, буфер что даст?:

Код: Выделить всё

cmd /c reg query HKLM\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\ /s|clip
imig73 писал(а):наверное запрос на удаление
Он самый.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Flasher
Данные из буфера:

Код: Выделить всё

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
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

imig73
А с этой?:

Код: Выделить всё

cmd /c reg query HKLM\SOFTWARE\Microsoft\PowerShell|clip
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Flasher

Код: Выделить всё

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell
    DisablePromptToUpdateHelp    REG_DWORD    0x1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

imig73
И, наконец:

Код: Выделить всё

cmd /c reg query HKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\ /s|clip
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Flasher
А здесь вот как:

Код: Выделить всё

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
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

imig73
ОК. Заменил 1 на 3 в 7-й строке. Можно проверять.

Add: Точнее не совсем. Ещё кое-что добавил.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Flasher
В 10-ке работает хорошо, ничего не мелькает. В 7-ке просто ничего не происходит и корзина не очищается. Видимо универсальности с PS не добиться, разные они в этих ОС, да и 10-ка обновляется постоянно. Может бывает какая-нибудь маленькая утилитка для очистки корзин при запуске, чтоб не мучатся?

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

Ну вы даёте Flasher, с вашими знаниями скриптов вам цены нет! Теперь работает одинаково бодро на 7, 8 и 10 без ошибок, мельканий и окон. Большое спасибо, сбылась моя давнишняя хотелка неожиданно :)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

imig73 писал(а):Может бывает какая-нибудь маленькая утилитка для очистки корзин при запуске, чтоб не мучатся?
Так выше в теме обсуждалить (rbc, nircmd emptybin). Сюда могу добавить:
RecycleNOW
EmptyRecycleBin /Q
imig73 писал(а):Теперь работает ... на 7 ... без мельканий и окон.
Это точно? Неужели там 5-й Posh стоит? :o

У меня в заначках ещё более древний скрипт имеется с пофайловым перебором:

Код: Выделить всё

' Очистить корзину
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
Он хоть и без мельканий, но будет явно медленней.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Flasher
Спасибо, но ваш скрипт на 993 байта мне больше по душе. Для XP и так много чего уже повыкидывал, слишком устарела она и только часто для спец. утилит годится теперь, и то редко. Отдельно для неё держать утилиту нехочу теперь.

Скрипт абсолютно точно работает на 7, 8 и 10. Дважды проверил на x32/x64. Правда в 7 х64 запрос на удаление быстро промелькивает, но это чепуха.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

imig73
Ну, собственно, с этой целью и писался. С другой стороны, nircmd на помойку только по этому случаю выкидывать смысла нет. :wink:

В цитате выделена только часть с мельканием. Т.е. я был прав насчёт 7-ки. ОК.
В общем, пожалуйста.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

Flasher
nircmd утилита годная и много чего умеет, но не для тотала она у меня :) Спасибо еще раз, надо было давно уже вас поспрашивать на счёт корзины, но не хотелось тему подымать :)
Аватара пользователя
Lisabon
Сообщения: 147
Зарегистрирован: Чт фев 17, 2011 23:11

Сообщение Lisabon »

Flasher
По-поводу скрипта...
Если включён в системе UAC, то получаю ошибку:

Код: Выделить всё

Сценарий:	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 запущен от админа.
Ответить