Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用tcl查找路径的一部分?_Tcl - Fatal编程技术网

如何使用tcl查找路径的一部分?

如何使用tcl查找路径的一部分?,tcl,Tcl,我是tcl的新手。我正在尝试编写一个tcl脚本,它将对树结构中的某些文件执行一些操作,但对所有文件都执行 我的树中有许多以.xci结尾的文件。 现在我想过滤我们所有的.gbn文件,除了我的树中包含路径部分“/ps/”的部分(即/src/ps//.xci)中的文件之外 我已经这样做了: foreach xci_file [get_files *.xci] { #if (ps_is_found_in_path_of_${xci_file}) { generate_target

我是tcl的新手。我正在尝试编写一个tcl脚本,它将对树结构中的某些文件执行一些操作,但对所有文件都执行

我的树中有许多以
.xci
结尾的文件。 现在我想过滤我们所有的.gbn文件,除了我的树中包含路径部分“
/ps/
”的部分(即
/src/ps//.xci
)中的文件之外

我已经这样做了:

foreach xci_file [get_files *.xci] {
    #if (ps_is_found_in_path_of_${xci_file}) {
        generate_target simulation [get_files $xci_file]
    }
}
foreach搜索我的项目中的所有文件并返回文件名(包括完整路径)。如何编写if语句以避免目标生成路径包含“
/ps/
”的文件

有没有一个好的灵魂可以分享这方面的信息?

你想要:

if {"ps" in [file split $xci_file]} {
此处需要引号:
expr
(处理
if
的第一个参数)
需要引用文字字符串。

如果目的是避免,可能应该是
ni
。是的-这就是目的。我忘了上面的“不”字。我改成了“ni”,这似乎奏效了。但是,我有包含“ps”的有效文件名—我真正想要的是过滤掉“/ps/”,以确保我指的是目录ps。我可以像那样添加“/”-字符吗?@Teddy:请看我对这个问题的评论。我认为expr的“in”操作符使用字符串相等,所以
expr{ps”in{foo epsilon}
返回false。(我对你删除的细化进行了评论,也许我可以把评论放在这里。)
in
操作符用于成员资格;反向运算符为
ni
(“不在”)。您不能再添加斜杠,但可以执行
[file split[file dirname$xci\u file]]
以避免查看文件名部分。