我在文件C:\TruncTest2
中有文本文件夹。在同一文件夹中,我有一个.bat文件,其中包含以下代码:
find -type f -name "???????????*" -delete
我正在尝试删除文件名中包含11个或更多字符的文件。在查看其他示例时,这似乎是正确的解决方案,但在运行批处理文件时没有任何反应。
答案 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。
不幸的是,这只是答案的一半,因为我不确定你应该做什么。 :(