-2

我想给我一些关于使用 cadence orcad 的建议,这样我就可以在我的电脑的 cmd 中使用 pspice.exe 顺序运行 cir 或 net(netlist) 文件。

我使用 tcl/tk 语言。我尝试了一些东西,但没有任何结果。

我想做一些类似的东西:

set top  {C:\Users\file1.net C:\Users\file2.net}; 
foreach a $top 
{exec D:\\tools\\bin\\pspice.exe -r $a}
4

2 回答 2

0

您的代码中有两个问题。第一个问题是\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]
}
于 2021-04-26T13:52:43.910 回答
0

在 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

于 2021-04-26T14:29:08.470 回答