1

Тема: AHK: Очистка Рабочего стола

По сути то у меня написана на VBS, но хотелось бы вариант на AHK что бы можно было править.

С VBS я не особенно "дружу" - файл в аттаче.

Алгоритм его прост, он удаляет с рабочего стола файлы и файлы в папках, но пустые папки он не удаляет и естественно ярлыки.

Можно конечно написать  на AHK аналогичный скрипт "с нуля", но я подумал может у кого есть нечто похожее.

P.S. В ветке AHK я подобного скрипта не нашел.

Post's attachments

СМЕРШ2.vbs 4.14 kb, 5 downloads since 2014-06-01 

You don't have the permssions to download the attachments of this post.
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

2

Re: AHK: Очистка Рабочего стола

Если я всё понял, то вот скрипт, удаляет всё кроме ярлыков и папок(работает с подпапками):


#Persistent

Loop, % A_Desktop "\test\*.*", , 1 ; удали "test\" что б работало на всём рабочем столе
    if !(A_LoopFileExt = "lnk")
        FileDelete, % A_LoopFileFullPath

ExitApp

3

Re: AHK: Очистка Рабочего стола

Eduard пишет:

удали "test\" что б работало на всём рабочем столе

я верно понял?

#Persistent

Loop, % A_Desktop "*.*", , 1 ; удали "test\" что б работало на всём рабочем столе
    if !(A_LoopFileExt = "lnk")
        FileDelete, % A_LoopFileFullPath

ExitApp

Понял всё верно, надо проверить. Я то хотел добавить доп. настройки, ну для начала исключение - например.

P.S. А у скрипта вложенность обнаружения любая?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

4

Re: AHK: Очистка Рабочего стола

Отлично, только зачем #Persistent в сочетании с безусловным ExitApp ?
Похоже, что-то из серии "стой там, иди сюда". Можно же просто

Loop, %A_Desktop%\*.*,, 1
   if (A_LoopFileExt <> "lnk")
      FileDelete %A_LoopFileFullPath%

5

Re: AHK: Очистка Рабочего стола

Irbis да, ты прав, но стоит #Persistent заменить на


#NoTrayIcon ; Отключить иконку в трее - она то по сути не нужна
#SingleInstance ignore ; Запрет повторного запуска - что бы случано два раза не кликнуть по иконке/ярлыку
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

6

Re: AHK: Очистка Рабочего стола

А где это в жизни бывает нужно? Просто у меня на рабочем столе как правило самые важные файлы. И удаляю их аккуратно и внимательно вручную.

7

Re: AHK: Очистка Рабочего стола

Разные варианты, например:
- Скрипт-заготовка, чтоб очищать любую директорию с выбором/исключением файлов по шаблону;
- комп на работе/универе/инет кафе, где раб.стол и файлопомойка означает одно и то же ))

8 (изменено: Indomito, 2014-06-02 15:14:03)

Re: AHK: Очистка Рабочего стола

ypppu пишет:

Просто у меня на рабочем столе как правило самые важные файлы.

у меня рабочий стол обычно чистый, только ярлыки. Всё важное я переношу туда, где нет индексации и виртуализации.

Иногда проблемой тормозов бываю гиговые файлы, которые хранятся именно на Desktop

И как сказал

Irbis пишет:

Скрипт-заготовка, чтоб очищать любую директорию с выбором/исключением файлов по шаблону

тоже для этого.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

9

Re: AHK: Очистка Рабочего стола

Да-да, кстати. Бывают программы, которые прорисовывают значки файлов, ассоциированные с ними, динамически. Я как-то на маленьком ноутбуке поместил на рабочий стол штук 20 файлов CorelDraw. Так explorer.exe долго загружался, после чего вылетал с критической ошибкой. Пришлось перетаскивать эти файлы в другую папку при помощи стороннего файл-менеджера.

10

Re: AHK: Очистка Рабочего стола

Точно.

Моя жена по умолчанию с фотошопа кидала файлы на Рабочий Стол - ну и комп хоть и быстрый стал жутко тормозить

Я по сути хочу сделать скрипт с указанием пути + списка файлов для любых директорий, правда не решил вопрос как выбирать файлы для списка исключений.

Метод перетаскивания - D&D, я не знаю как реализовать, а другие получаются весьма объёмными и по коду и по числу операций со стороны пользователя.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

11

Re: AHK: Очистка Рабочего стола

А в чем сложность с D&D?

Loop %0%
   MsgBox % %A_Index%

12

Re: AHK: Очистка Рабочего стола

Попробую, хотя не очень понял смысл кода.... спс.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

13

Re: AHK: Очистка Рабочего стола

На скомпилированный скрипт кидаешь выделенные файлы и папки, MsgBox отобразит их с полными путями.
Если, конечно, мы говорим об одном и том же.

14 (изменено: Indomito, 2014-06-05 21:14:11)

Re: AHK: Очистка Рабочего стола

А, ясно, я как то сразу и не понял...

Ну, а если скрипт сам открывает диалоговое окно методами GUI - FileSelectFolder и FileSelectFile

Так сработает?

P.S. Если можно, то простой пример применения считывания в переменную полного пути к папке/файлу

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

15

Re: AHK: Очистка Рабочего стола

Irbis пишет:

На скомпилированный скрипт кидаешь выделенные файлы

А в чём необходимость компиляции?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

16

Re: AHK: Очистка Рабочего стола

serzh82saratov пишет:

А в чём необходимость компиляции?

ну мне по сути не важно, у меня файл компилируется автоматом при запуске из текстового редактора NP++

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

17

Re: AHK: Очистка Рабочего стола

Вам без разницы, а мне интересно - зачем.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

18

Re: AHK: Очистка Рабочего стола

По сути разницы не должно быть, но у меня в случае нескомпилированного скрипта пути передаются  в DOS формате 8.3, т.е. усеченные, например "C:\PROGRA~1\MICROS~1".

19

Re: AHK: Очистка Рабочего стола

Некоторые, да. Но тут проще добавить одну строку, чем компилировать.


Loop %0%
       Loop % %A_Index%
              MsgBox %A_LoopFileLongPath%
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

20 (изменено: Indomito, 2014-06-05 22:25:58)

Re: AHK: Очистка Рабочего стола

Irbis пишет:

нескомпилированного скрипта пути передаются  в DOS формате 8.3

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

serzh82saratov интересный метод, т.е. два вложенных цикла.
Да, я не понял, когда он заканчивается то? По сути он бесконечен или я не прав?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

21

Re: AHK: Очистка Рабочего стола

Пример то из справки Loop (файлы и папки)


; Пример №6: конвертирует имена файлов, переданные скрипту как параметры командной строки.
; Возвращает длинные имена, полные пути и правильный регистр букв (как в файловой системе).
Loop %0% ; Для каждого файла, брошенного на значок скрипта (или переданного как параметр).
{
    GivenPath := %A_Index% ; Следующий параметр командной строки.
    Loop %GivenPath%
        LongPath = %A_LoopFileLongPath%
    MsgBox Длинное имя и путь в правильном регистре для файла`n%GivenPath%`n`n%LongPath%
}

По сути он бесконечен или я не прав?

Нет. В данном контексте, там всегда только одна Итерация.

И в примере сейчас заметил, папки не обрабатываются, поэтому правильнее так:


Loop %0%
{
    If InStr(FileExist(%A_Index%), "D")
        MsgBox % ComObjCreate("Shell.Application").NameSpace(%A_Index%).Self.Path
    Else
        Loop % %A_Index%
            MsgBox %A_LoopFileLongPath% 
} 
MsgBox Параметров больше нет.
return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui