运行 依次为 tcl/tk 的 cir 和 net 文件

Run sequentially cir and net files with tcl/tk

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

我用 tcl/tk language.I 试了几次都没有结果。

我想做类似这个的东西:

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

您的代码中有两个问题。 第一个问题是 \f 是列表中的转义字符序列(对于“向下一行”,IIRC;要点是你不想要这种解释)。第二个问题是你的 foreach.

中的大括号位置错误

第一个问题的最佳解决方法是使用 / 而不是 \,然后对提供给 OS 的值使用 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]
}

在 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