TCL:使用twapi包获取打印机详细信息

时间:2016-08-09 16:10:39

标签: tcl

我正在使用twapi 4.1版本来获取打印机的详细信息(“myprinter”)。 下面的命令有效,并给出了预期的结果。

set printerData [twapi::recordarray getlist [twapi::enumerate_printers] -filter {{-name eq myprinter -nocase}}]

但是,我无法将打印机名称作为参数传递给-filter选项。

以下代码不起作用:

set printerName "myprinter"
set printerData [twapi::recordarray getlist [twapi::enumerate_printers] -filter {{-name eq $printerName -nocase}}]

我尝试了不同的格式(使用subst命令和所有)但没有任何效果。

任何想法如何将打印机名称作为参数传递?在此先感谢您的帮助。

- 聂

1 个答案:

答案 0 :(得分:1)

问题是tcl没有评估花括号内的字符串,所以你应该使用 list 命令改变你的代码:

set printerName "myprinter"
set printerData [twapi::recordarray getlist \
                 [twapi::enumerate_printers] \
                  -filter [list [list -name eq $printerName -nocase ] ]\
                 ]