【问题标题】:exec cmd commands using tcl without opening terminal window使用 tcl 执行 cmd 命令而不打开终端窗口
【发布时间】:2022-02-20 20:18:29
【问题描述】:

我正在尝试使用exec 使用 tcl 代码通过 cmd 运行诸如 dir 之类的命令,但是终端窗口打开了,当命令运行时,我无法将结果存储到变量中?

这是我迄今为止一直在尝试的,

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

当我使用打印出变量时,

puts $res

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

感谢任何帮助。

【问题讨论】:

    标签: cmd tcl


    【解决方案1】:
    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} *]
    

    参考:execglob

    【讨论】:

      猜你喜欢
      • 2013-08-09
      • 2018-02-03
      • 2019-10-26
      • 2016-10-20
      • 2013-05-22
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      相关资源
      最近更新 更多