У меня есть сценарий TCL, который запускается Libero, используя путь к файлу, указанный в качестве аргумента для открытия проекта.Путь к файлу: C:\Users\me\Documents\FPGA projects\file.prjx
Я запускаю сценарий в соответствии с Справочное руководство Libero TCL (стр. 51 - 52) для запуска сценария в командной строке.На странице 47 документ описывает, как работать с именами файлов с пробелами;используя фигурные скобки или в случае использования в качестве аргумента используйте двойные кавычки.
Команда, которую я пытаюсь выполнить:
Path\to\libero SCRIPT:export.tcl SCRIPT_ARGS:""C:\Users\me\Documents\FPGA projects\file.prjx""
Внешний набор двойных кавычек должен следоватьСинтаксис, описанный на странице 52 документа для предоставления аргументов и внутреннего набора двойных кавычек, заключается в обработке пробела в первом аргументе.Я ожидал, что $argv 0
будет C:\Users\me\Documents\FPGA projects\file.prjx
, но вместо этого $argv 0
на самом деле C:\Users\me\Documents\FPGA
.
Я добавил оператор печати в скрипт для печати $argv
:
puts $argv
Это дает результат C:\Users\me\Documents\FPGA
, поэтому остальная часть пути к файлу не интерпретируется какбыть вторым аргументом.
Я предполагаю, что соглашения, изложенные в документе, являются просто стандартными соглашениями TCL для предоставления пути к файлу, содержащего косые черты и пробелы в качестве аргумента.Я не смог найти пример передачи аналогично отформатированного аргумента в TCL.Есть идеи?