我见过如何使用批处理文件遍历目录并处理与通配符表达式匹配的各种文件的示例,例如:
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
循环。我如何尝试匹配当前目录中没有通配符的确切文件名?
最佳答案
Windows 需要一个“通配符”表达式来使 FOR
循环按预期运行。因此,您可以提供这样的表达式,同时可能通过通配符匹配额外的文件,并使用额外的 IF
语句将它们过滤掉:
FOR %%f IN (somefile.ext*) DO (
IF /I "%%f"=="somefile.ext" (
ECHO Found somefile.ext in
ECHO dir: %cd%
ECHO.
)
)
... 或者首先使用 IF
语句来检查文件是否存在:
IF EXIST somefile.ext (
ECHO Found somefile.ext in
ECHO dir: %cd%
ECHO.
)
关于windows - 使批处理文件 FOR 命令在没有通配符的情况下工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32722412/