exec cmd命令使用tcl而不打开终端窗口

时间:2017-02-15 16:26:05

标签: cmd tcl

我正在尝试使用dir使用tcl代码运行带有cmd的set res [exec cmd.exe /c "dir" &]; 命令,但终端窗口打开,当命令运行时我无法存储结果,变成一个变量?

这是我到目前为止所尝试的,

puts $res

当我使用

打印变量时
ContentPage

在运行命令时,我只返回三位或四位数代码而不是实际结果。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

set res [exec cmd.exe /c "dir" &]

exec末尾的&表示该命令将在后台处理。返回的结果是命令的进程ID。

要做你想做的事,请使用:

set res [exec cmd.exe /c "dir"]

使用内置glob命令获取文件列表或搜索文件会更有效率和资源消耗更少。

 set res [glob *.txt]

 set res [glob -directory {C:/Program Files} *]

参考文献:exec glob