对于批处理脚本中的循环通配符匹配

For loop wildcard matching in batch script

我正在编写一个批处理脚本,它应该在类型为 .exp 的目录中找到所有文件并重命名它们。除了 FOR 循环外,一切正常,因为我似乎无法通过通配符匹配来找到正确的文件集。

如果我写:

for /F %%x in (*.exp) do (echo %%x)

结果是:

The system cannot find the file *.exp

如果我写:

for /F %%x in ("*.exp") do (
echo %%x
echo %%~nx.exp
)

结果是:

*.exp
expectedfilename1.exp

但循环只运行一次并在第一个文件处停止。

我看到的每个在线示例都使用其中一种格式,所以我不知道我做错了什么。非常感谢您的帮助!

尝试

对于 (*.exp) 中的 %%x 执行 (echo %%x)

For /f "tokens=*" %%x in ('dir /b *.exp') do (echo %%x)