DEL 命令的奇怪行为

Odd behavior with the DEL command

正在编写一个简短的脚本来搜索具有特定扩展名的所有文件,重命名并删除它们...但我注意到删除脚本中有一些奇怪的行为。

假设我有四个文件:file.lofile.log file.logs, & file.logarithm

如果我使用命令del /s /q /f *.lo,那么只会删除file.lo。如果我使用命令 del /s /q /f *.logs 则只有 file.logs 被删除。

但如果我使用命令 del /s /q /f *.log,则 .log、.logs 和 .logarithm 将被删除。唯一剩下的文件是 file.lo

谁能解释一下这种行为?

解释:file.logarithm 匹配 8.3 简称 file.log

解决方法:del file.log.

根据this answer, using an extension of exactly 3 characters in a search pattern causes the search to also return matching files with longer extensions, and otherwise allways finds exactly the right files. You should apparently use "file?.log", "file.log." as Stephan suggests, or one of these suggestions