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

[文件操作] 批处理如何删除或者保留固定次序的文件?

目前是按次序命名的jpg格式的图片2000张
想保留1,4,7,10,13...(每三张图片保留一张)
或者删除掉2,3;5,6;8,9...(每四张图片中间的两张图片删除)

  1. SetLocal EnableDelayedExpansion
  2. for /l %%n in (1,1,2000) do set "$=00000%%n"&&set "#_!$:~-5,5!=%%n !$:~-5,5!"
  3. for /f "tokens=1-3 delims== " %%h in ('set #_')do (
  4.   set/a "$=(%%i)%%3"
  5.   if !$!==0 echo,删除:%%i.jpg 扩充名称%%j.jpg
  6.   if !$!==2 echo,删除:%%i.jpg 扩充名称%%j.jpg
  7.   if !$!==1 echo, 保留:%%i.jpg 扩充名称%%j.jpg
  8. )
复制代码
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

本帖最后由 aloha20200628 于 2025-1-8 14:20 编辑

回复 1# dupp

以下代码存为 test.bat 运行,但不要存于图片目录下,代码中第一行假定图片目录是 "d:\jpg",可自定义,楼主所说的图片文件次序假定就是 dir /b/a-d *.jpg 默认的文件列表次序,建议先用小量样本测试无误后再转为实况使用...
  1. @echo off &cd /d "d:\jpg" &setlocal enabledelayedexpansion &set "n=0"
  2. for /f "delims=" %%F in ('dir /b/a-d *.jpg') do (
  3. set/a "n+=1" &if !n! neq 1 del /q "%%F"
  4. if !n! equ 3 set "n=0")
  5. pause&exit/b
复制代码

TOP

本帖最后由 czjt1234 于 2025-1-8 09:30 编辑
  1. @echo off
  2. cd /d "图片目录"
  3. for /l %%a in (2,3,2000) do echo del %%a.jpg
  4. for /l %%a in (3,3,2000) do echo del %%a.jpg
复制代码

QQ 20147578

TOP

回复 1# dupp


请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
否则大家帮你写的代码也许可以处理假设的需求,但是无法处理你真实的需求。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表