找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27692|回复: 10

[文件操作] 求一个批处理脚本重命名拖拽图片

[复制链接]
发表于 2020-3-21 14:16:25 | 显示全部楼层 |阅读模式
A为一个空文件夹
我从其他文件夹拖拽图片到A文件夹,使图片命名为001,再拖拽一张图片命名为002,以此类推。谢谢给位大佬。
发表于 2020-3-21 15:27:45 | 显示全部楼层
回复 1# gytqqq


    图片格式是什么,有固定的后缀名吗?
    你什么都不说清楚让人很难搞
 楼主| 发表于 2020-3-21 15:30:37 | 显示全部楼层
回复  gytqqq


    图片格式是什么,有固定的后缀名吗?
    你什么都不说清楚让人很难搞
wujunkai 发表于 2020-3-21 15:27



    jpg的就是001 002 003 004 005------100 就这么排列啊
发表于 2020-3-21 15:54:55 | 显示全部楼层
回复 3# gytqqq
  1. @echo off
  2. @setlocal enabledelayedexpansion

  3. set num=001
  4. call:count

  5. :main
  6.     for /R %%i in (*.jpg) do (
  7.         if not %%~ni LSS %num% (
  8.             rename "%%i" %num%.jpg
  9.             set /A num+=1
  10.             call:int
  11.             goto:main
  12.         )
  13.     )
  14.     call:sleep 125
  15. goto:main

  16. :count
  17.     rem 计算已重命名的文件数
  18.     if exist %num%.jpg (
  19.         set /A num+=1
  20.         call:int
  21.         goto:eof
  22.     )
  23. goto:eof

  24. :int
  25.     rem 统一格式
  26.     set num=000%num%
  27.     set num=%num:~-3%
  28. goto:eof

  29. :sleep
  30.     rem 防高频
  31.     echo WScript.sleep %1 > sleep.vbs
  32.     start /wait sleep.vbs
  33.     del sleep.vbs
  34. goto:eof
复制代码
目测稳定。8Hz。放在A文件夹的目录下,打开后保持运行(其实全部复制好再运行也可以)。仅支持jpg且文件数小于999.
    建议先备份图片再尝试,出现意外概不负责。
 楼主| 发表于 2020-3-21 16:07:23 | 显示全部楼层
回复  gytqqq 目测稳定。8Hz。放在A文件夹的目录下,打开后保持运行(其实全部复制好再运行也可以)。仅支持 ...
wujunkai 发表于 2020-3-21 15:54



    有效!!文件数能不能小于9999 谢谢了 给您磕头了
 楼主| 发表于 2020-3-21 16:10:30 | 显示全部楼层
回复  gytqqq 目测稳定。8Hz。放在A文件夹的目录下,打开后保持运行(其实全部复制好再运行也可以)。仅支持 ...
wujunkai 发表于 2020-3-21 15:54



    改到008后 再拖文件就不改了。。。
 楼主| 发表于 2020-3-21 16:15:10 | 显示全部楼层
回复 4# wujunkai


    我发现生成那个sleep文件消失就不再改名了
发表于 2020-3-21 16:47:10 | 显示全部楼层
回复 7# gytqqq


    抱歉,我也不知道为什么。。。
    明天我再追踪一下过程。学生党要去写作业了 (^_^)
发表于 2020-3-21 17:49:40 | 显示全部楼层
回复 4# wujunkai


    猜测是0开头的数字被识别是八进制了
发表于 2020-3-21 18:03:47 | 显示全部楼层
本帖最后由 Gin_Q 于 2020-3-21 18:13 编辑
  1. @echo off& setlocal enabledelayedexpansion &rem by Gin
  2. ::可以检查是否拖入了上一次文件(间隔超过一次无法检测)
  3. ::如果中间删掉了一个文件可以自动补充(需要重新打开程序)
  4. ::需要把程序放在修改后的图片文件目录

  5. ::检查文件名
  6. for /l %%a in (1,1,999) do (
  7.         if %%a lss 10 ( if not exist "00%%a.jpg" ( echo 正在处理第%%a个文件
  8.                 call :input
  9.                 copy "!file!" "00%%a.jpg"))
  10.         if %%a geq 10 ( if %%a lss 100 (if not exist "0%%a.jpg" ( echo 正在处理第%%a个文件
  11.                 call :input
  12.                 copy "!file!" "0%%a.jpg")))
  13.         if %%a geq 100 ( if not exist "%%a.jpg" ( echo 正在处理第%%a个文件
  14.                 call :input
  15.                 copy "!file!" "%%a.jpg"))
  16.         )
  17. echo 文件数已到达999!
  18. pause&exit
  19. :input
  20.         set /p file=请拖入文件:
  21.         if "!file!" equ "!che!" goto :input
  22.         set "che=!file!"
  23. exit /b 0
复制代码
发表于 2020-3-21 18:18:26 | 显示全部楼层
回复 9# Batcher


    确实。。。稍微修一下又可以用了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 17:17 , Processed in 0.020801 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表