Windows 批处理脚本 - 如何过滤具有定义扩展名的文件

标签 windows for-loop batch-file cmd

我想用在变量中定义的扩展名对图像做一些事情。 以下脚本运行良好:

set AllowExt="jpg png bmp"
forfiles /p D:\Pictures /m *.* /c "cmd /c if not %AllowExt:jpg=% == %AllowExt% echo @file

但是下面的脚本会报错

set AllowExt="jpg png bmp"
forfiles /p D:\Pictures /m *.* /c "cmd /c if not %AllowExt:@ext=% == %AllowExt% echo @file"

错误:无效参数/选项 - 'png'。 输入“FORFILES/?”供使用。

最佳答案

你可以试试这个:

set "AllowExt=.jpg .png .bmp"
for %%a in (%AllowExt%) do (
  forfiles /p D:\Pictures /m *%%a /c "cmd /c echo @file"
)

"cmd/c echo @file" 是默认命令,参见 forfiles/?

关于Windows 批处理脚本 - 如何过滤具有定义扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17638648/

相关文章:

windows - 无法访问 Metro 应用程序中的 Assets 文件

c# - 如何在启动到非桌面 shell 后从 C# 代码加载/显示桌面?

c++ - 如何在windows服务中显示启动错误信息?

java - 从另一个数组的值创建一个数组?

java - 执行jar后继续批处理文件

c - 使用 ANSI C 在 Windows 平台上传输 FTP 文件?

r - For 循环需要永远运行

for-loop - 解决verilog中的无限循环

windows - 用于比较两个文件列表并删除两个列表中显示的文件的命令行

java - 在 Bea Weblogic 中运行批处理