;~ Opt("TrayIconHide", 1) Opt('TrayIconDebug', 1) Local $sPath_FileSaveAu3, $sPath_DirSerchLnk, $hSearch, $hFile, $aFileInfo[7], $sPath_FileLnk, $sShortcut $sPath_DirSerchLnk = 'c:\test' $sPath_DirCreateLnk = -1; -1: создовать ярлыки в той же папки, где были найденны файлы. Либо можно задать любую папку, в которой будут создоваться ярлыки $sPath_FileSaveAu3 = 'c:\test2\Shortcut.au3' If StringRight($sPath_DirSerchLnk, 1) == '\' Then $sPath_DirSerchLnk = StringTrimRight($sPath_DirSerchLnk, 1) If StringRight($sPath_DirCreateLnk, 1) == '\' Then $sPath_DirCreateLnk = StringTrimRight($sPath_DirCreateLnk, 1) $hSearch = FileFindFirstFile($sPath_DirSerchLnk & '\*.lnk') If $hSearch == -1 Then Exit MsgBox(48, 'Ошибка: 1', 'Искомые файлы не найдены') While 1 $hFile = FileFindNextFile($hSearch) If @error Then ExitLoop $aFileInfo = FileGetShortcut($sPath_DirSerchLnk & '\' & $hFile) $sPath_FileLnk = StringRegExpReplace($aFileInfo[0], '(.+?)\.[^\\\/:\*\?\"\<\>\|]*', '\1.lnk') If @extended < 1 Then $sPath_FileLnk = $aFileInfo[0] & '.lnk' If $sPath_DirCreateLnk <> -1 AND StringStripWS($sPath_DirCreateLnk, 8) <> '' Then $sPath_FileLnk = StringRegExpReplace($sPath_FileLnk, '.+\\(.+)', StringReplace($sPath_DirCreateLnk, '\', '\\') & '\\\1') $sShortcut &= 'FileCreateShortcut("' & $aFileInfo[0] & '", "' & $sPath_FileLnk & '", "' & $aFileInfo[1] & '", "' & $aFileInfo[2] & '", "' & $aFileInfo[3] & '", "' & $aFileInfo[4] & '")' & @CRLF WEnd FileClose($hSearch) If $sShortcut == '' Then Exit MsgBox(48, 'Ошибка: 2', 'Искомые файлы не найдены') If StringStripWS($sPath_FileSaveAu3, 8) == '' Then $sPath_FileSaveAu3 = @ScriptDir & '\' & 'Shortcut.au3' $sShortcut = 'Opt("TrayIconHide", 1)' & @CRLF & @CRLF & $sShortcut $hFile = FileOpen($sPath_FileSaveAu3, 2+8) FileWrite($hFile, $sShortcut) FileClose($hFile) |