小编Jas*_*rne的帖子

如何在tcl中向exec添加可变数量的参数?

我已经和TCL合作了一段时间了,我花了很长时间尝试做以下事情(看起来很简单,我认为它应该是,但我无法做到正确):

我需要通过tcl脚本执行外部程序.为此,我使用exec命令.为了使用这个外部程序,我需要输入可变数量的文件.如果我直接从cmd窗口调用此程序,它将类似于:

C:\>myprogram -i file1 -i file2 -i file3 (etc., etc.)
Run Code Online (Sandbox Code Playgroud)

但是,当试图通过tcl以动态/可变的方式实现它时,我遇到了麻烦.我这样做的方法是在一些变量myvar中存储-i filex我需要的所有" "(在循环中完成),然后将其作为参数传递给exec命令.它看起来像:

exec myprogram $myvar
Run Code Online (Sandbox Code Playgroud)

这样做显然会产生一些问题,因为这个myprogram无法"看到"myvar.我猜测存在某种隐藏的终结符或不同类型的参数的冲突,这使得exec命令最终只"看到"myprogram.

所以,我的问题是,有没有人知道如何在调用中插入变量参数exec

variables arguments tcl dynamic exec

7
推荐指数
2
解决办法
4206
查看次数

如何将switch中的变量与列表内容进行匹配?

我对tcl中switch的使用有疑问.主要是,我想知道是否有可能做出类似的事情:

switch myvar {
    list1 {
        puts "myvar matches contents of list1"; }
    list2 {
        puts "myvar matches contents of list2"; }
    default {
        puts "myvar doesn't match any content of any list"; }
}
Run Code Online (Sandbox Code Playgroud)

在这里,list1和list2可以是包含不同文件名称的列表或字符串数​​组.

如果没有进行非常详细的正则表达式搜索,这是否可行?

谢谢!

list tcl switch-statement

2
推荐指数
1
解决办法
1965
查看次数

如何在批处理文件中使用cd设置tcl中的路径?

我一直只使用Tcl语言几天,但我也习惯用其他语言编程; 但是,我无法在任何地方找到任何关于如何设置当前目录或路径的参考,因为它可以使用命令cd以批处理语言完成.

我需要这个,因为我使用Tcl来集成几个不同的程序.其中一个存在识别当前路径的一些明显问题.如果我从批处理文件执行它,之前使用cd和该程序所在的文件夹设置路径,一切正常.

但是,如果不使用批处理文件而是使用基本的Tcl脚本来调用此程序(我使用exec),它似乎找不到它需要的文件夹或文件,很可能是因为它使用的相对路径映射不正确.

有没有人知道Tcl批量cd的等效版本?

谢谢!!

cd tcl path batch-file

0
推荐指数
2
解决办法
6679
查看次数

标签 统计

tcl ×3

arguments ×1

batch-file ×1

cd ×1

dynamic ×1

exec ×1

list ×1

path ×1

switch-statement ×1

variables ×1