我有以下
Windows批处理脚本循环遍历当前目录中的所有文件:
FOR %%F in (%CD%\*.*) DO (
:: I am doing my process here
)
我知道我可以使用* .ext遍历特定的文件类型,但是我需要循环遍历下面给出的所有文件类型并忽略所有其他类型,这些类型也只在单个FOR循环中:
php
phtml
css
js
sql
xml
如何通过尽可能对我的代码进行最轻微的修改来实现这一目标?
我不是一个批处理脚本,所以任何帮助将不胜感激.
最佳答案 如何在批处理文件中使用此命令行?
for %%I in (*.php *.phtml *.css *.js *.sql *.xml) do echo "%%I"
或者更好,取决于你想做什么:
for /F "delims=" %%I in ('dir /A-D /B *.php *.phtml *.css *.js *.sql *.xml 2^>nul') do echo "%%I"
具有DIR的版本也适用于具有隐藏属性集的文件,并且当重命名,移动或删除当前目录中的文件时更好,即当前目录文件列表由于FOR循环体中的命令而改变,因为处理的文件列表一旦执行DIR命令,FOR不会改变,这不是使用第一个解决方案的情况.第一种解决方案很容易导致意外行为,如双重处理文件,跳过意外文件或在当前目录中重命名,移动,修改或删除文件时无休止的运行循环.
在命令提示符窗口中运行/?和dir /?有关这两个命令的帮助,这两个命令同时支持在参数列表上指定多个通配符模式.