You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows中用CMD/PowerShell通过正则匹配批量删除文件?

问题场景

Windows电脑中有一个包含子文件夹的文件夹,里面的图片文件名格式如下:

  • first-image-name.jpg(需保留的原文件)
  • first-image-name-72x72.jpg
  • first-image-name-150x150.jpg
  • first-image-name-250x250.jpg
  • first-image-name-300x300.jpg
  • first-image-name-400x400.jpg
  • first-image-name-1024x1024.jpg
  • second-image-name.png(需保留的原文件)
  • second-image-name-72x72.png
  • second-image-name-150x150.png
  • second-image-name-250x250.png
  • second-image-name-300x300.png
  • second-image-name-400x400.png
  • second-image-name-1024x1024.png

需求:删除所有带尺寸标识的图片,仅保留原文件,且需要递归处理子文件夹。

用户尝试了以下命令但均失效:

Windows PowerShell命令

Get-ChildItem $Path | Where{$_.Name -Match '.*[0-9]+x[0-9]+.\(jpg\|png\|jpeg\)$'} | Remove-Item

Windows CMD命令

find -type f -regex '.*[0-9]+x[0-9]+.\(jpg\|png\|jpeg\)$' -delete
find -name '.*[0-9]+x[0-9]+.\(jpg\|png\|jpeg\)$' -delete

命令问题分析

PowerShell命令的问题

  1. 正则表达式错误:
    • 匹配文件名后缀的.是正则通配符,需转义为\.才能匹配实际的点号;
    • PowerShell的-Match使用.NET正则规则,括号()和管道符|无需用反斜杠转义,原命令的\(jpg\|png\|jpeg\)写法错误,应改为(jpg|png|jpeg);
    • 遗漏了尺寸标识前的横杠-,目标文件名格式为xxx-72x72.jpg,正则未匹配该横杠会导致误判或漏判。
  2. 缺少递归参数:默认Get-ChildItem仅处理当前目录,需添加-Recurse参数才能遍历子文件夹。
  3. 未限定文件类型:未加-File参数可能误操作文件夹,建议补充该参数。

CMD命令的问题

Windows CMD自带的find是文本内容搜索工具,和Linux的文件查找find命令完全不同,你用的Linux find语法在CMD中完全不生效。


正确的命令实现

PowerShell 正确命令

# 替换$Path为你的目标文件夹路径,比如"C:\Images"
Get-ChildItem $Path -File -Recurse | Where-Object {$_.Name -match '.*-\d+x\d+\.(jpg|png|jpeg)$'} | Remove-Item -WhatIf
  • 保留-WhatIf可预览要删除的文件,确认无误后再移除该参数执行实际删除;
  • 正则.*-\d+x\d+\.(jpg|png|jpeg)$精准匹配以-数字x数字.后缀结尾的文件,避免误删原文件。

CMD 正确命令

CMD中用for循环结合正则匹配实现递归删除:

:: 替换为你的目标文件夹路径,比如C:\Images
for /r "你的文件夹路径" %f in (*-*x*.*) do (
    echo %f | findstr /r ".*-[0-9]*x[0-9]*\.(jpg\|png\|jpeg)$" >nul && del "%f"
)
  • /r参数实现递归遍历子文件夹;
  • 可先将del "%f"改为echo "%f"预览待删除文件,确认后再替换回del执行删除。

内容的提问来源于stack exchange,提问作者Muhammad Hassan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:05:54