如何在TCL中使用“rm-rf*”

如何在TCL中使用“rm-rf*”,tcl,delete-file,vivado,Tcl,Delete File,Vivado,我想使用TCL删除目录中的所有文件。(我在Win 10下使用Xilinx Vivado的TCL控制台。)我从中发现了这一点 应该有用。 但是 什么也不做。 那有什么问题吗?做吧 file delete -force -- {*}[glob *] 。。。因此,[glob]返回的路径名被转换为[file delete]的多个参数(使用扩展运算符{*}),而不是一个表示路径名列表的参数(由[file delete]读取为一个复杂的文件路径) 或者,在早于8.5的Tcl上,使用显式循环: for

我想使用TCL删除目录中的所有文件。(我在Win 10下使用Xilinx Vivado的TCL控制台。)我从中发现了这一点

应该有用。 但是

什么也不做。 那有什么问题吗?

做吧

  file delete -force -- {*}[glob *]
。。。因此,
[glob]
返回的路径名被转换为
[file delete]
的多个参数(使用扩展运算符
{*}
),而不是一个表示路径名列表的参数(由
[file delete]
读取为一个复杂的文件路径)

或者,在早于8.5的Tcl上,使用显式循环:

 foreach path [glob *] {
    file delete -force -- $path
 }

您需要考虑的其他事项:

  • 您是否需要关心删除文件而不是目录?考虑<>代码>类型< /Cord>选项。
  • 如果您需要递归工作,不要重新发明轮子并使用tcllib。这些文件和文件包是相关的

  • 扩展用于命令调用的
    [glob]
    结果(例如
    [file]
    )是此处的常见主题,另请参见。
      file delete -force -- {*}[glob *]
    
     foreach path [glob *] {
        file delete -force -- $path
     }