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

如何在Windows 10命令提示符中删除多文件夹内指定数量文件

嘿,这个需求其实用Windows自带的CMD批处理或者PowerShell就能轻松搞定,不用非得折腾Python。我给你俩靠谱方案,按需选:

方案1:纯CMD批处理脚本

如果你坚持要用命令提示符的原生语法,这个嵌套循环脚本可以精准帮你每个文件夹删够500个文件:

@echo off
setlocal enabledelayedexpansion

:: 这里设置要删除的文件数量,改成你需要的数字就行
set "delete_count=500"

:: 遍历当前目录下的所有子文件夹
for /d %%d in (*) do (
    echo 正在处理文件夹: %%d
    pushd "%%d"
    
    :: 生成当前文件夹的文件列表(只取文件,排除子文件夹),存到临时文件
    dir /b /a-d > temp_filelist.txt
    
    :: 初始化计数器,记录已删除的文件数
    set "count=0"
    
    :: 遍历临时文件里的文件名,逐个删除直到达到目标数量
    for /f "delims=" %%f in (temp_filelist.txt) do (
        if !count! lss %delete_count% (
            del "%%f"
            set /a count+=1
        ) else (
            :: 删够数了就跳到下一个文件夹
            goto :next_folder
        )
    )
    
    :next_folder
    :: 清理临时文件
    del temp_filelist.txt
    popd
)

echo 所有文件夹处理完成!
endlocal

使用步骤:

  1. 打开记事本,把上面的代码粘进去,保存成delete_files.bat(注意保存类型选“所有文件”)
  2. 把这个批处理文件放到包含那30个文件夹的父目录里
  3. 双击运行,或者在CMD里进入父目录后输入delete_files.bat执行

小提示:

  • 测试的时候可以把del "%%f"改成echo del "%%f",这样只会打印要删除的文件名,不会真删,先确认没问题再改回去。
  • enabledelayedexpansion是为了让计数器在循环里正常更新,别删掉这行。
方案2:PowerShell命令(更简洁,可在CMD里直接调用)

如果不排斥用PowerShell(Windows 10自带,不用额外安装),这一行命令就能搞定,比CMD批处理省心多了:

powershell -Command "Get-ChildItem -Directory | ForEach-Object { Get-ChildItem -File -Path $_.FullName | Select-Object -First 500 | Remove-Item -Force }"

解释:

  • Get-ChildItem -Directory:获取当前目录下的所有子文件夹
  • ForEach-Object:对每个文件夹执行后续操作
  • Get-ChildItem -File:获取文件夹里的所有文件
  • Select-Object -First 500:只取前500个文件
  • Remove-Item -Force:删除这些文件,-Force可以强制删除只读文件,不需要的话可以去掉

测试技巧:

把Remove-Item -Force改成Write-Output $_.FullName,就能先预览要删除的文件路径,确认无误再改回去执行删除。


内容的提问来源于stack exchange,提问作者Andrew Earl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:31:30