Чтобы получить файл, который находится в той же директории, что и текущий выполняемый скрипт, используйте это:
source [file join [file dirname [info script]] "test7.tcl"]
Обратите внимание, что не работает внутри процедур, определенных во внешнем скрипте (test8.tcl в вашем случае), потому что они обычно вызываются после завершения работы источника. Если это так, то самое простое решение - просто сохранить выходные данные info script
в переменной во внешнем скрипте (или просто получить исходные файлы сразу, а не лениво для наилучшего подхода).