【发布时间】:2015-12-19 18:11:49
【问题描述】:
我已经看到了如何使用批处理文件遍历目录并处理与通配符表达式匹配的各种文件的示例,例如:
FOR %%f IN (*.ext) DO (
ECHO Found ext file %cd%\%%f
)
以上将仅匹配当前目录中以.ext 结尾的文件。但是,如果我只想匹配一个确切的文件名,如果它存在于该目录中呢?我想要类似的东西:
FOR %%f IN (someFile.ext) DO (
ECHO Found our file name in %cd%
)
但这似乎不起作用; FOR 命令将“somefile.ext”解释为字符串,并始终运行一次FOR 循环。如何尝试匹配当前目录中的确切文件名,而不使用通配符?
【问题讨论】:
-
如果只检查单个文件,请使用
if exists检查。 -
或
if exist,实际上。help if在 cmd 控制台中获取更多信息。 -
for如果指定了专用路径,则不会检查文件系统;仅在需要时,即给定通配符*、?,才访问文件系统; -
这个问题你可能会感兴趣:stackoverflow.com/questions/22395010/…
-
@GovindParmar 有趣,我在想分机中的通配符问号:
for %g in ("someFile.ex?") do echo found %~g
标签: windows batch-file for-loop cmd