Board logo

标题: [文件操作] 请教批处理如何删除指定序号文件? [打印本页]

作者: 3354493038    时间: 2019-3-31 20:45     标题: 请教批处理如何删除指定序号文件?

想请教对于大量的文件(文件名基本无规律),怎么做到每隔十个文件删除十个文件。就是要保留第一到第十个文件,删除第11到第二十个文件,保留第21到30个文件,删除第31到第40个文件。以此类推直到最后。
作者: ivor    时间: 2019-3-31 21:52

先确定什么属性排序吧
作者: bailong360    时间: 2019-3-31 22:30

文件名无规律的话, 删掉 N / 2 个文件就行了 (
作者: 3354493038    时间: 2019-4-1 14:51

回复 3# bailong360


    不好意思,可以讲的更详细一点吗,还是有点不能理解,谢谢!
作者: Batcher    时间: 2019-4-1 17:00

测试之前请做好备份
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for /f "delims=" %%i in ('dir /b /a-d') do (
  5.     if "%%i" neq "%0" (
  6.         set /a n+=1
  7.         if !n! geq 11 (
  8.             if !n! leq 20 (
  9.                 del /f /q !n! "%%i"
  10.             ) else (
  11.                 set /a n-=20
  12.             )
  13.         )
  14.     )
  15. )
复制代码

作者: Batcher    时间: 2019-4-1 17:00

测试之前请做好备份
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for /f "delims=" %%i in ('dir /b /a-d') do (
  5.     if "%%i" neq "%0" (
  6.         set /a n+=1
  7.         if !n! geq 11 (
  8.             if !n! leq 20 (
  9.                 del /f /q !n! "%%i"
  10.             ) else (
  11.                 set /a n-=20
  12.             )
  13.         )
  14.     )
  15. )
复制代码

作者: WHY    时间: 2019-4-1 19:30

本帖最后由 WHY 于 2019-4-2 18:32 编辑
  1. dir E:\Test\* -File | sort Name | %{if($n++%20 -ge 10){del -Literal $_.FullName -Force -WhatIf}}
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2