[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]求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



谢谢。
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 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即可。
1

评分人数

TOP

  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
复制代码
2

评分人数

bat小白,请多指教!谢谢!

TOP

奇数:
  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
复制代码
1

评分人数

TOP

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

以奇数为例:
  1. del *1.mp3 *3.mp3 *5.mp3 *7.mp3 *9.mp3
复制代码
经6楼提醒,此方案有误删风险

TOP

回复 5# CrLf


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

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

del *1.mp3 两个文件都会被删除。
1

评分人数

    • CrLf: 说得对技术 + 1

TOP

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

TOP

返回列表