Как исключить из поиска FileFind исполняемый файл (скомпилированный скрипт)?
Xabib2302 Сообщения 95 Репутация -1 23 Окт 2021 #1 Как исключить из поиска FileFind исполняемый файл (скомпилированный скрипт)?
All2khoff Продвинутый Сообщения 393 Репутация 72 23 Окт 2021 #2 Мало данных Как вариант Код: if $filename= 'file.txt' then Continueloop Пишу с телефона может быть ошибка в синтаксисе Последнее редактирование: 25 Окт 2021
Мало данных Как вариант Код: if $filename= 'file.txt' then Continueloop Пишу с телефона может быть ошибка в синтаксисе
Автор Xabib2302 Сообщения 95 Репутация -1 23 Окт 2021 #3 Glass4217 сказал(а): Мало данных Как вариант Код: if $filename= 'file.txt' then Continue Пишу с телефона может быть ошибка в синтаксисе Нажмите, чтобы раскрыть... Еще точнее. Как исключить из поиска (FileFindFirstFile и FileFindNextFile) скомпилированный скрипт (AutoIt v3 Script.exe) Пример скрипта Код: $hSearch = FileFindFirstFile('*.*') If $hSearch = -1 Then MsgBox(4096, "Ошибка", "Ни один из файлов не найден") Exit EndIf While 1 $sFile = FileFindNextFile($hSearch) ; возвращает имя следующего файла, начиная от первого до последнего If @error Then ExitLoop EndIf ConsoleWrite($sFile & @CRLF) ; $sDir = StringLeft($sFile, StringInStr($sFile, ".", 0, -1) - 1) ConsoleWrite($sDir & @CRLF) ; ShellExecuteWait(@ScriptDir & '\bin\ap28.exe','-res=' & @ScriptDir & '\' & $sFile & ',0 -icon=' & @ScriptDir & '\' & $sDir & '.ico -formats=16,24,32,48') WEnd ; Закрывает дескриптор поиска FileClose($hSearch)
Glass4217 сказал(а): Мало данных Как вариант Код: if $filename= 'file.txt' then Continue Пишу с телефона может быть ошибка в синтаксисе Нажмите, чтобы раскрыть... Еще точнее. Как исключить из поиска (FileFindFirstFile и FileFindNextFile) скомпилированный скрипт (AutoIt v3 Script.exe) Пример скрипта Код: $hSearch = FileFindFirstFile('*.*') If $hSearch = -1 Then MsgBox(4096, "Ошибка", "Ни один из файлов не найден") Exit EndIf While 1 $sFile = FileFindNextFile($hSearch) ; возвращает имя следующего файла, начиная от первого до последнего If @error Then ExitLoop EndIf ConsoleWrite($sFile & @CRLF) ; $sDir = StringLeft($sFile, StringInStr($sFile, ".", 0, -1) - 1) ConsoleWrite($sDir & @CRLF) ; ShellExecuteWait(@ScriptDir & '\bin\ap28.exe','-res=' & @ScriptDir & '\' & $sFile & ',0 -icon=' & @ScriptDir & '\' & $sDir & '.ico -formats=16,24,32,48') WEnd ; Закрывает дескриптор поиска FileClose($hSearch)
joiner Модератор Локальный модератор Сообщения 3,570 Репутация 632 23 Окт 2021 #4 Исключить по имени или пути, используя макрос пути к скрипту
Автор Xabib2302 Сообщения 95 Репутация -1 23 Окт 2021 #5 joiner сказал(а): Исключить по имени или пути, используя макрос пути к скрипту Нажмите, чтобы раскрыть... Код: @AutoItExe Последнее редактирование: 23 Окт 2021
joiner сказал(а): Исключить по имени или пути, используя макрос пути к скрипту Нажмите, чтобы раскрыть... Код: @AutoItExe
All2khoff Продвинутый Сообщения 393 Репутация 72 25 Окт 2021 #6 если актуально накидал горсточку скомпилированных файлов в каталог Код: MsgBox(1, @scriptname, "тест запуска файлов поочерёдно", 5) и туда положил ваш скрипт с дополнительной проверкой на "имя скрипта", параметры запуска я почистил для простоты. Код: ; Скрипт показывает имена всех файлов в текущей директории. $hSearch = FileFindFirstFile("E:\test\*.exe") ; возвращает дескриптор поиска ; Проверка, является ли поиск успешным If $hSearch = -1 Then MsgBox(4096, "Ошибка", "Ни один из файлов или каталогов не соответствует маске поиска") Exit EndIf While 1 $sFile = FileFindNextFile($hSearch) ; возвращает имя следующего файла, начиная от первого до последнего If @error Then ExitLoop EndIf MsgBox(1,$sFile,"следующий по списку файл",5) $sDir = StringLeft($sFile, StringInStr($sFile, ".", 0, -1) - 1) ;~ ConsoleWrite($sDir & @CRLF) ; if $sFile = @ScriptName Then MsgBox(1,$sFile,"Имя файла как у скрипта не запускаем",5) ContinueLoop Else ShellExecuteWait(@ScriptDir & '\' & $sFile) EndIf WEnd ; Закрывает дескриптор поиска FileClose($hSearch) все файлы поочереди запустились, а непосредственно скрипт был пропущен. использовать Код: @AutoItExexe мне показалось излишним.
если актуально накидал горсточку скомпилированных файлов в каталог Код: MsgBox(1, @scriptname, "тест запуска файлов поочерёдно", 5) и туда положил ваш скрипт с дополнительной проверкой на "имя скрипта", параметры запуска я почистил для простоты. Код: ; Скрипт показывает имена всех файлов в текущей директории. $hSearch = FileFindFirstFile("E:\test\*.exe") ; возвращает дескриптор поиска ; Проверка, является ли поиск успешным If $hSearch = -1 Then MsgBox(4096, "Ошибка", "Ни один из файлов или каталогов не соответствует маске поиска") Exit EndIf While 1 $sFile = FileFindNextFile($hSearch) ; возвращает имя следующего файла, начиная от первого до последнего If @error Then ExitLoop EndIf MsgBox(1,$sFile,"следующий по списку файл",5) $sDir = StringLeft($sFile, StringInStr($sFile, ".", 0, -1) - 1) ;~ ConsoleWrite($sDir & @CRLF) ; if $sFile = @ScriptName Then MsgBox(1,$sFile,"Имя файла как у скрипта не запускаем",5) ContinueLoop Else ShellExecuteWait(@ScriptDir & '\' & $sFile) EndIf WEnd ; Закрывает дескриптор поиска FileClose($hSearch) все файлы поочереди запустились, а непосредственно скрипт был пропущен. использовать Код: @AutoItExexe мне показалось излишним.