删除包含11个或更多字符的文件夹中的文件

时间:2014-04-30 16:03:25

标签: windows shell file-io cmd

我在文件C:\TruncTest2中有文本文件夹。在同一文件夹中,我有一个.bat文件,其中包含以下代码:

find -type f -name "???????????*" -delete

我正在尝试删除文件名中包含11个或更多字符的文件。在查看其他示例时,这似乎是正确的解决方案,但在运行批处理文件时没有任何反应。

3 个答案:

答案 0 :(得分:2)

使用FORFILES命令:

FORFILES /M ???????????* /C "CMD /C DEL @file"

正如安德鲁指出的那样,find语法对于* nix是正确的,但不适用于Windows。但是,Windows中的find命令有不同的用途;它在文件中搜索文本。

请注意:虽然逻辑会建议,但不要DEL ???????????*The Windows shell does not interpret ? the way you'd expect。这相当于DEL *.*

答案 1 :(得分:2)

这不像StvnW的FORFILES解决方案那么方便,但它的执行速度应该更快。 FORFILES可能很慢。

for /f "eol=: delims=" %F in ('dir /b /a-d^|findstr ...........') do @del "%F"

如果在批处理脚本中使用,则加倍百分比。

答案 2 :(得分:0)

这是 unix find命令的正确语法。您可以在批处理文件中使用a totally different find command

不幸的是,这只是答案的一半,因为我不确定你应该做什么。 :(