Что нового

Помогите доработать скрипт авто очищения рабочего стола

Vadimmm0072

Новичок
Сообщения
36
Репутация
2
Версия AutoIt:v3.2.5.4 3.

Описание:
За неделю на моем рабочем столе скапливается куча ненужных ярылков и файлов и прочего и так как мне лень все это раскидывать по папкам решил написать скриптец который будет это делать. Но так как я совсем не давно стал изучать autoit у меня пока получается не очень хорошо.
Вот мое начало скрипта, далее я просто не знаю что делать, в итоге после использования данного скрипта я получаю текстовый документ с ярлыками и путем к ним. Далее нужно парсить этот текст и использовать какие то функции. Помогите доработать этот скрипт, желательно поясняя ваши команды и прочее. Заранее спасибо

Код:
#include <Encoding.au3>
run('cmd.exe')
WinWaitActive('C:\Windows\system32\cmd.exe')
send('cd/')
send('{enter}')
send('cd Users\Vadim\Desktop')
send('{enter}')
send('dir > C:\Users\Vadim\Desktop\DirDesktop.txt')
send('{enter}')
send('exit')
send('{enter}')
run('notepad.exe')
$file = FileOpen("C:\Users\Vadim\Desktop\DirDesktop.txt", 0)
If $file = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
	EndIf
  $sumline = 0
 While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    $sumline = $sumline + 1
	wend 
$i = 0
While $i <> $sumline
       $line = FileReadLine($file, $i)
       If @error = -1 Then ExitLoop
	   $reselt = _Encoding_CyrillicTo1251($line)
       WinActive('Безымянный — Блокнот')
	   send($reselt)
	   send('{enter}')
	   $i = $i + 1
WEnd
FileClose($file)
winclose('Безымянный — Блокнот')
WinwaitActive('Блокнот')
send('{enter}')
WinwaitActive('Сохранить как')
send('{backspace}')
send('{backspace}')
send('{backspace}')
send('{backspace}')
send('{backspace}')
send('{backspace}')
send('Результат.txt')
send('{enter}')
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Помогите доработать мой скрипт

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Помогите доработать мой скрипт" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 
Автор
V

Vadimmm0072

Новичок
Сообщения
36
Репутация
2
madmasles Изменил, вроде как нормально. :whistle:
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Вот немного другой вариант получения списка ярлыков
Код:
$Dir = @DesktopDir & "\" ;путь к папке для поиска
$search = FileFindFirstFile($Dir & "*.lnk")

If $search = -1 Then 
    MsgBox(48, "Инфо", "Ярлыки не найдены")
    Exit
EndIf

While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop		
	ConsoleWrite($Dir & $file & @CRLF)    
WEnd

FileClose($search)

А вот что дальше с ними делать я не понял.
Удалить их что ли?
 

ArtInt

Знающий
Сообщения
135
Репутация
18
Yuriy [?]
Удалить их что ли?
Действительно. Или ты хочешь, чтобы само по папкам рассовывалось? 0_о

Вариант Yuriy'а лучший - и простой и надёжный.
Можно, конечно, ещё через FileOpenDialog с фильтром сделать, но тогда пользователю придётся самому отметить ненужные ярлыки.
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Код:
#include <file.au3>

$file = _FileListToArray(@DesktopDir)
For $i=1 To $file[0]
	FileDelete(@DesktopDir&'\'&$file[$i])
Next
 

ArtInt

Знающий
Сообщения
135
Репутация
18
Ganibal95, нужно же ярлыки тереть.
Код:
#include <file.au3>

$file = _FileListToArray(@DesktopDir)
For $i=1 To $file[0]
   If StringRight ($file[$i],4)=".lnk" then FileDelete(@DesktopDir&'\'&$file[$i])
Next
 

ArtInt

Знающий
Сообщения
135
Репутация
18
OffTopic:
Ganibal95
;D Слушай, в русской справке нет этой функции?
Просто тоже хотел написать пост с ней, но не нашёл. Или просто старая версия у меня?

Если нет, придётся переходить на английскую.

Автор, всё же озвучь, что делать с файлами? ;)
 
Верх