标题: [文件操作] 求一个批处理脚本重命名拖拽图片 [打印本页]
作者: gytqqq 时间: 2020-3-21 14:16 标题: 求一个批处理脚本重命名拖拽图片
A为一个空文件夹
我从其他文件夹拖拽图片到A文件夹,使图片命名为001,再拖拽一张图片命名为002,以此类推。谢谢给位大佬。
作者: wujunkai 时间: 2020-3-21 15:27
回复 1# gytqqq
图片格式是什么,有固定的后缀名吗?
你什么都不说清楚让人很难搞
作者: gytqqq 时间: 2020-3-21 15:30
回复 gytqqq
图片格式是什么,有固定的后缀名吗?
你什么都不说清楚让人很难搞
wujunkai 发表于 2020-3-21 15:27
jpg的就是001 002 003 004 005------100 就这么排列啊
作者: wujunkai 时间: 2020-3-21 15:54
回复 3# gytqqq - @echo off
- @setlocal enabledelayedexpansion
-
- set num=001
- call:count
-
- :main
- for /R %%i in (*.jpg) do (
- if not %%~ni LSS %num% (
- rename "%%i" %num%.jpg
- set /A num+=1
- call:int
- goto:main
- )
- )
- call:sleep 125
- goto:main
-
- :count
- rem 计算已重命名的文件数
- if exist %num%.jpg (
- set /A num+=1
- call:int
- goto:eof
- )
- goto:eof
-
- :int
- rem 统一格式
- set num=000%num%
- set num=%num:~-3%
- goto:eof
-
- :sleep
- rem 防高频
- echo WScript.sleep %1 > sleep.vbs
- start /wait sleep.vbs
- del sleep.vbs
- goto:eof
复制代码
目测稳定。8Hz。放在A文件夹的目录下,打开后保持运行(其实全部复制好再运行也可以)。仅支持jpg且文件数小于999.
建议先备份图片再尝试,出现意外概不负责。
作者: gytqqq 时间: 2020-3-21 16:07
回复 gytqqq 目测稳定。8Hz。放在A文件夹的目录下,打开后保持运行(其实全部复制好再运行也可以)。仅支持 ...
wujunkai 发表于 2020-3-21 15:54
有效!!文件数能不能小于9999 谢谢了 给您磕头了
作者: gytqqq 时间: 2020-3-21 16:10
回复 gytqqq 目测稳定。8Hz。放在A文件夹的目录下,打开后保持运行(其实全部复制好再运行也可以)。仅支持 ...
wujunkai 发表于 2020-3-21 15:54
改到008后 再拖文件就不改了。。。
作者: gytqqq 时间: 2020-3-21 16:15
回复 4# wujunkai
我发现生成那个sleep文件消失就不再改名了
作者: wujunkai 时间: 2020-3-21 16:47
回复 7# gytqqq
抱歉,我也不知道为什么。。。
明天我再追踪一下过程。学生党要去写作业了 (^_^)
作者: Batcher 时间: 2020-3-21 17:49
回复 4# wujunkai
猜测是0开头的数字被识别是八进制了
作者: Gin_Q 时间: 2020-3-21 18:03
本帖最后由 Gin_Q 于 2020-3-21 18:13 编辑
- @echo off& setlocal enabledelayedexpansion &rem by Gin
- ::可以检查是否拖入了上一次文件(间隔超过一次无法检测)
- ::如果中间删掉了一个文件可以自动补充(需要重新打开程序)
- ::需要把程序放在修改后的图片文件目录
-
- ::检查文件名
- for /l %%a in (1,1,999) do (
- if %%a lss 10 ( if not exist "00%%a.jpg" ( echo 正在处理第%%a个文件
- call :input
- copy "!file!" "00%%a.jpg"))
- if %%a geq 10 ( if %%a lss 100 (if not exist "0%%a.jpg" ( echo 正在处理第%%a个文件
- call :input
- copy "!file!" "0%%a.jpg")))
- if %%a geq 100 ( if not exist "%%a.jpg" ( echo 正在处理第%%a个文件
- call :input
- copy "!file!" "%%a.jpg"))
- )
- echo 文件数已到达999!
- pause&exit
- :input
- set /p file=请拖入文件:
- if "!file!" equ "!che!" goto :input
- set "che=!file!"
- exit /b 0
复制代码
作者: wujunkai 时间: 2020-3-21 18:18
回复 9# Batcher
确实。。。稍微修一下又可以用了。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |