Что нового

[Массивы] Скрипт сравнения ярлыков эталонного каталога и Рабочего стола и удаления лишних

evgen_vasgen

Новичок
Сообщения
19
Репутация
0
Добрый день. Поможите создать скрипт сравнения ярлыков из двух каталогов, один из них "LNK" находиться в папке со скриптом, а второй - Рабочий стол пользователя. Если при сравнении выяснится что на рабочем столе есть те же ярлыки, что и в папке LNK то их надо удалить.
Возможно ли сваять такое чудо? Заранее благодарю.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Код:
#include <File.au3>
#include <Array.au3>

Const $sLNKDir = @ScriptDir & "\LNK"
Global $iDeleted = 0

$aDesktopLNKs = _FileListToArray(@DesktopDir, "*.lnk")
$aFolderLNKs = _FileListToArray($sLNKDir, "*.lnk")

For $i = 1 to $aDesktopLNKs[0]
	$iIndex = _ArraySearch($aFolderLNKs, $aDesktopLNKs[$i])
	If Not @error Then 
		FileDelete(@DesktopDir & "\" & $aDesktopLNKs[$i])
		$iDeleted += 1
	EndIf
Next

MsgBox(64, "Удалено", "Удалено " & $iDeleted & " ярлыков")


Не проверял, но должно работать
 
Автор
E

evgen_vasgen

Новичок
Сообщения
19
Репутация
0
Спасибо, все работает. :smile: Хотя мне ничего не понятно в скрипте. Далеко мне до этих высот.
Я конечно наглею, но можно ли еще добавить в этот скрипт возможность такого же удаления ярлыков из меню пуск?
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
evgen_vasgen
в какой именно папке пуска нужно проверять? Там папок много
 
Автор
E

evgen_vasgen

Новичок
Сообщения
19
Репутация
0
Точно много, набралось аж 4 папки у Windows 7
%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\
%SYSTEMDRIVE%\Users\All Users\Microsoft\Windows\Start Menu\
%userprofile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu
%userprofile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

и две у хрюши.
%USERPROFILE%\Главное меню
%ALLUSERSPROFILE%\Главное меню
Буду рад если не откажите в доработке скрипта.
 
Верх