olsmir
написал 5 июня 2009 года в 17:24 (1810 просмотров)
Ведет себя
неопределенно; открыл 1 тему в форуме, оставил 2 комментария на сайте.
При написании скрипта TCL никак не могу найти способ, как мне получить путь к самому этому файлу TCL. Например, я написал скрипт test.tcl, поместил его на C:\AAA\BBB\test.tcl. Как мне в этом же скрипте извлечь путь C:\AAA\BBB ?
Последние комментарии
-
OlegL, 17 декабря 2023 года в 15:00 →
Перекличка
21
-
REDkiy, 8 июня 2023 года в 9:09 →
Как «замокать» файл для юниттеста в Python?
2
-
fhunter, 29 ноября 2022 года в 2:09 →
Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt?
6
-
Иванн, 9 апреля 2022 года в 8:31 →
Ассоциация РАСПО провела первое учредительное собрание
1
-
Kiri11.ADV1, 7 марта 2021 года в 12:01 →
Логи catalina.out в TomCat 9 в формате JSON
1
DevOps as a Service from Palark
24/7 SRE & DevOps service to cover all your Kubernetes needs.

regsub -all {\[^\]+$} «C:\\AAA\\BBB\\test.tcl» «» out
puts $out
Всё это хорошо (а фразу «\test.tcl», которая также возвращается в переменную $out, я бы естественно отсёк), но в этом примере В ЯВНОМ ВИДЕ указывается этот путь. А я его как бы заранее-то не знаю и хочу получить. Т.е. я поместил скрипт test.tcl в некое место и в процеесе его выполнения хочу получить это место.
Даааа чета я стпуил по твоему вопросу, тада просто в тело скрипта помести:
regsub {[^\\]+$} $argv0 "" path cd $path puts [pwd]Увы. $argc и $argv<число> (конечно $argv0) — это первое, что пришло мне на ум, по аналогии с другими языками командной строки. Написал простейшую команду puts «path = $argv0», и получил отлуп:
# can’t read «argv0»: no such variable
Это я получил внутри того приложения, которое умеет работать со скриптами TCL (для чего мне собственно всё и надо).
Если же выполнить из-под обычного интерпретатора TCL (запускаешь экзешник tclsh, открывается чёрное окно с приглашением в виде %, и там вводишь source test.tcl), то выдаётся пустышка:
path =