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

Windows 如何使用forfiles删除没有扩展名的文件,windows,batch-file,cmd,delete-file,Windows,Batch File,Cmd,Delete File,我使用forfiles从特定目录中删除超过7天的文件,使用此论坛其他地方的以下脚本: forfiles -p "H:\E-drev" -m *.* /D -7 /C "cmd /c del @path" 这工作正常,除了我有一些没有扩展名的文件,例如一个名为TA07l的文件。此文件未被删除。我尝试使用@fname而不是@path,但这没有帮助 任何建议都将不胜感激。您必须使用*而不是*.,否则它将搜索包含点的所有文件 更新时,在*和*.和*.*.之间添加一些示例: copy nul _onef

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

forfiles -p "H:\E-drev" -m *.* /D -7 /C "cmd /c del @path"
这工作正常,除了我有一些没有扩展名的文件,例如一个名为TA07l的文件。此文件未被删除。我尝试使用
@fname
而不是
@path
,但这没有帮助


任何建议都将不胜感激。

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

更新时,在
*
*.
*.*.
之间添加一些示例:

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"

以下方面应起作用:

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

模式
*
匹配每个项目;也许
*。
可能有效(但我现在无法测试)…是的,
*。
是如何指示没有扩展名的文件的。@SomethingDark也不在
中。