如何使用forfiles删除没有扩展名的文件

时间:2015-09-16 15:31:06

标签: windows batch-file cmd delete-file

我正在使用 forfiles 使用此论坛其他地方的以下脚本从特定目录中删除超过7天的文件:

forfiles -p "H:\E-drev" -m *.* /D -7 /C "cmd /c del @path"

这个工作正常,除了我有一些没有扩展名的文件,例如。名为 TA07l 的文件。此文件不会被删除。我尝试使用@fname代替@path,但这没有帮助。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

您必须使用*代替*.*,否则它将搜索包含点.的所有文件

使用**.以及*.*之间的一些示例进行更新:

copy nul _onefilewithoutext
copy nul _onefilewith.ext
mkdir _oneFolder
dir /b /a-d *.
_onefilewithoutext

Forfiles命令

forfiles /M *. /C "cmd /C echo @relpath"
Error: File Type "*." not found.

forfiles /M * /C "cmd /C echo @relpath"
".\_onefilewith.ext"
".\_onefilewithoutext"
".\_oneFolder"

forfiles /M *.* /C "cmd /C echo @relpath"
".\_onefilewith.ext"

forfiles /M * /C "cmd /C if @isdir==FALSE echo @relpath"
".\_onefilewith.ext"
".\_onefilewithoutext"

forfiles /M * /C "cmd /C if @isdir==FALSE if @ext==\"\" echo @relpath"
".\_onefilewithoutext"

答案 1 :(得分:1)

以下内容应该有效:

forfiles /P "H:\E-drev" /M * /D -7 /C "cmd /C if @isdir==FALSE if @ext==\"\" del @path"