Board logo

标题: [文件操作] [已解决]求BAT代码-实现批量删除编号为奇数或偶数的文件 [打印本页]

作者: qd2024    时间: 2023-7-16 07:23     标题: [已解决]求BAT代码-实现批量删除编号为奇数或偶数的文件

本帖最后由 qd2024 于 2023-7-28 22:44 编辑

用第三方软件 分割生成MP3文件,生成小段文件文件后后缀规则 如下:
分割生成文件最多9个时
001M01-1
……
001M01-9

分割生成文件最多99个时
001M01-01
……
001M01-99

分割生成文件最多999个时
001M01-001
……
001M01-999

分割生成文件最多9999个时
001M01-0001
……
001M01-9999

更多数量时,以此类推。

===============需要一段批处理命令,
以文件名中“-”后面的数据,实现删除全部奇数编号文件,或全部偶数编号文件。
文件扩展名为MP3



谢谢。
作者: qixiaobin0715    时间: 2023-7-16 08:59

本帖最后由 qixiaobin0715 于 2023-7-16 09:00 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1* delims=-" %%i in ('dir /b /a-d *.mp3') do (
  4.     set n=%%~nj
  5.     set /a n=n
  6.     set /a n=n%%2
  7.     if !n! equ 1 del %%i-%%j
  8. )
复制代码
以上是删除奇数,如果要删除偶数请将代码第7行中的1替换成0即可。
作者: 77七    时间: 2023-7-16 09:42

  1. @echo off
  2. rem 删除奇数
  3. for /l %%l in (1,2,9) do (
  4. del "*-*%%l.mp3"
  5. )
  6. exit
  7. @echo off
  8. rem 删除偶数
  9. for /l %%l in (0,2,8) do (
  10. del "*-*%%l.mp3"
  11. )
  12. exit
复制代码

作者: qixiaobin0715    时间: 2023-7-16 09:51

奇数:
  1. for /f "delims=" %%i in ('dir /b /a-d *.mp3^|findstr /e "[13579]\.mp3"') do del %%i
复制代码
偶数:
  1. for /f "delims=" %%i in ('dir /b /a-d *.mp3^|findstr /e "[02468]\.mp3"') do del %%i
复制代码

作者: CrLf    时间: 2023-7-29 20:05

本帖最后由 CrLf 于 2023-7-31 12:21 编辑

以奇数为例:
  1. del *1.mp3 *3.mp3 *5.mp3 *7.mp3 *9.mp3
复制代码
经6楼提醒,此方案有误删风险
作者: WHY    时间: 2023-7-30 18:26

回复 5# CrLf


    这样有误删的风险吧?
比如有两个文件:
001M01-00.mp3
001M01-01.mp3

对应短文件名分别是:
001M01~1.mp3
001M01~2.mp3

del *1.mp3 两个文件都会被删除。
作者: WHY    时间: 2023-7-30 18:32

用 PowerShell 也比较方便
  1. del *[13579].mp3  -Force #奇数
复制代码
限制:路径及文件名本身不能包含 "[" 字符




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