对于批处理脚本中的循环通配符匹配
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)
我正在编写一个批处理脚本,它应该在类型为 .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)