Что нового

Исключить файл из поиска

Сообщения
95
Репутация
-1
Как исключить из поиска FileFind исполняемый файл (скомпилированный скрипт)?
 

All2khoff

Продвинутый
Сообщения
347
Репутация
65
Мало данных
Как вариант
Код:
if $filename= 'file.txt' then
Continueloop

Пишу с телефона может быть ошибка в синтаксисе
 
Последнее редактирование:
Автор
Xabib2302
Сообщения
95
Репутация
-1
Мало данных
Как вариант
Код:
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,556
Репутация
628
Исключить по имени или пути, используя макрос пути к скрипту
 

All2khoff

Продвинутый
Сообщения
347
Репутация
65
если актуально

накидал горсточку скомпилированных файлов в каталог
Код:
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
мне показалось излишним.
 
Верх