Что нового

Имя текущего скрипта

shasoft

Новичок
Сообщения
15
Репутация
0
Что я наверное туплю, но как получить имя текущего скрипта?
Т.е. у меня файл renamer.au3 который подключает файл exif.au3 и вызывает из него функцию getExif. В этой функции getExif макрос @ScriptDir возвращает каталог файла renamer.au3 Мне же нужен каталог файла exif.au3 (я запускаю exiftool.exe из лежащей рядом директории bin и мне нужно узнать путь файла для запуска)
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
При использовании директивы #include
текст файла exif.au3 включается как вставка в текст файла renamer.au3.
И для AutoIt файла exif.au3 просто не существует.
 
Автор
S

shasoft

Новичок
Сообщения
15
Репутация
0
Спасибо. Что-то не подумал об этом. Придется думать, как определить каталог утилиты :scratch:
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
каталог утилиты:
Код:
@ScriptDir & '\dir'
 
Автор
S

shasoft

Новичок
Сообщения
15
Репутация
0
inververs сказал(а):
каталог утилиты:
Код:
@ScriptDir & '\dir'
В этом случае в @ScriptDir лежит директория первого скрипта, а мне нужна директория второго подключенного скрипта. Выше уже объяснили что это не обойти, так как текст include полностью вставляется в другой файл и этого другого файла просто нет.
 

InnI

AutoIT Гуру
Сообщения
4,982
Репутация
1,460
shasoft
мне нужна директория второго подключенного скрипта
Если вы внимательно прочитали справку, то там сказано, что в #include можно указывать только прямые пути. Другими словами, вы всегда знаете, где находится включаемый файл
Код:
#include "bin\file1.au3"
$path1 = @ScriptDir & "\bin"

#include <file2.au3>
$path2 = @AutoItExe & "\Include"
If Not FileExists($path2 & "\file2.au3") Then $path2 = @ScriptDir
 
A

Alofa

Гость
shasoft сказал(а):
... Выше уже объяснили что это не обойти, так как текст include полностью вставляется в другой файл и этого другого файла просто нет.
Вы все неправильно поняли. Зачем обходить то, что создано для вашего удобства.
Подключаемые библиотеки, грубо говоря, какбы дописывают вашь скрипт своими функциями (это другой вопрос, что большая часть из них вам не понадобится в данном скрипте).
Попробуйте ради эксперимента, найдите эту библиотеку и скопируйте ее содержимое в конец своего скрипта + удалите
Код:
#include <file2.au3>

и попробуйте запустить скрипт. Все заработает также, как и раньше.
Короче говоря вот вашь путь:
Код:
@ScriptDir & "\bin\exiftool.exe"
 
Автор
S

shasoft

Новичок
Сообщения
15
Репутация
0
На самом деле я правильно понял. Просто объяснил наверное неправильно. :smile:

Проблему я уже решил.
 
Верх