Последовательно запускать файлы cir и net с помощью tcl/tk
Я хотел бы дать мне ваш совет по использованию cadence orcad, чтобы я мог последовательно запускать файлы cir или net(netlist) с помощью pspice.exe в cmd моего компьютера.
Я использую язык tcl / tk. Я пробовал несколько вещей, но безрезультатно.
Я хочу сделать что-то похожее на это:
set top {C:\Users\file1.net C:\Users\file2.net};
foreach a $top
{exec D:\\tools\\bin\\pspice.exe -r $a}
2 ответа
В Windows вы также можете попробовать:
package require twapi
set top {C:/Users/file1.net C:/Users/file2.net}
foreach a $top {
twapi::shell_execute -path [file nativename $a]
}
Это будет работать, только если
*.net
файлы уже связаны с приложением PSpice .
В приведенном выше коде используется расширение TWAPI (если оно у вас есть) и его
shell_execute
функция, чтобы открыть документ, как работает двойной щелчок.
Всегда рекомендуется избегать обратных косых черт в коде (не нужно ставить их дважды, чтобы избежать их),
file nativename
сделает всю работу за вас.
Источник: https://twapi.magicsplat.com/v4.5/shell.html#shell_execute
В вашем коде есть две проблемы. Первая проблема в том, что
\f
представляет собой последовательность управляющих символов в списках (для «перейти на одну строку вниз», IIRC; смысл в том, что вам не нужна такая интерпретация). Вторая проблема заключается в том, что вы неправильно разместили скобу в своем
foreach
.
Первую проблему лучше всего решить, используя
/
вместо
\
, а затем используя
file nativename
от значения, подаваемого в ОС. (Вы должны сделать это вручную для аргумента исполняемых файлов в
expr
; Tcl не может исправить это за вас полностью автоматически.) Вторая проблема - это просто синтаксическая ошибка.
Попробуй это:
set top {C:/Users/file1.net C:/Users/file2.net}
set pspice D:/tools/bin/pspice.exe
foreach a $top {
# Tcl knows how to convert executable names for you; not the other args though
exec $pspice -r [file nativename $a]
}