gpt4 book ai didi

windows - 批处理循环遍历具有预定义列表或扩展名集的所有文件并忽略所有其他文件类型

转载 作者:可可西里 更新时间:2023-11-01 14:22:45 24 4
gpt4 key购买 nike

我有以下 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 循环的主体,因为 FOR 处理的文件列表在执行 DIR 命令后不会改变,这与使用第一个解决方案的情况不同.第一种解决方案很容易导致意外行为,例如双重处理文件、跳过意外文件或在当前目录中重命名、移动、修改或删除文件时无限循环。

在命令提示符窗口中运行 for/?dir/? 以获得这两个命令的帮助,这两个命令都支持在参数列表上指定多个通配符模式。

关于windows - 批处理循环遍历具有预定义列表或扩展名集的所有文件并忽略所有其他文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45318285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com