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

[文件操作] [已解决]批处理怎样按文件数字大小的顺序重命名文件

[复制链接]
发表于 2021-3-16 01:38:53 | 显示全部楼层 |阅读模式
本帖最后由 西京宁音 于 2021-3-17 01:11 编辑

有3000张图片,文件名字是(1)~(3000)用下面的代码会先重命名1开头的文件,1开头的都重命名结束了才会重命名2开头的文件,然后是3开头的.....
  1. @Echo Off&SetLocal ENABLEDELAYEDEXPANSION
  2. set n=1000
  3. rem 变量n的值就是开始序号
  4. set mydir=E:\图片\1
  5. rem 把mydir后面的路径改为需要修改文件名的文件夹的完整路径
  6. for /f "tokens=4 delims=" %%a in ("%~0") do set self=%%a
  7. cd /d %mydir%
  8. for /f %%i in ('dir %mydir% /b') do (
  9. for /f "tokens=2 delims=." %%a in ("%%i") do (
  10. echo %%i
  11. if not !self! == %%i (
  12. if !n! lss 10 (ren %%i 000!n!.%%a) else (
  13. if !n! lss 100 (ren %%i 00!n!.%%a) else (
  14. if !n! lss 1000 (ren %%i 0!n!.%%a) else ren %%i !n!.%%a
  15. set /a n += 1
  16. )))))
  17. pause
复制代码
发表于 2021-3-16 06:43:17 | 显示全部楼层
要说清楚你的需求。
1.jpg-----0001.jpg
2.jpg-----0002.jpg
.....
200.jpg-----0200.jpg
是这样吗
发表于 2021-3-16 10:49:21 | 显示全部楼层
  1. @echo off
  2. setlocal enableDelayedExpansion
  3. set "mydir=E:\图片\1"

  4. pushd "%mydir%"
  5. for /l %%n in (1,1,3000)do (
  6.         set/a newname=10000+%%n
  7.         ren %%n.jpg !newname:~-4!.jpg
  8.         echo ren %%n.jpg !newname:~-4!.jpg
  9. )
  10. popd
复制代码
发表于 2021-3-16 13:50:38 | 显示全部楼层
回复 3# cutebe
算是吹毛求疵,计数最终值不需要到3000吧,999足矣
 楼主| 发表于 2021-3-16 15:35:55 | 显示全部楼层
回复 2# qixiaobin0715

(1).jpg-----1000.jpg
(2).jpg-----1001.jpg
(1000).jpg-----1999.jpg
(6666).jpg-----7665.jpg
......
我贴的这个代码是能设置改名开始的序号的
set n=1000
rem 变量n的值就是开始序号
 楼主| 发表于 2021-3-16 15:37:05 | 显示全部楼层
回复 3# cutebe


    大佬的这个不能识别(1)这种名字的...
我是想让他从1000开始重命名...
发表于 2021-3-16 16:00:37 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.jpg) do (
  4.     set "str=%%~na"
  5.     set "str=!str:~1,-1!"
  6.     set /a str+=999
  7.     ren "%%a" "!str!.jpg"
  8. )
  9. pause
复制代码
回复 5# 西京宁音
发表于 2021-3-16 16:04:06 | 显示全部楼层
批处理放在jpg图片所在的文件夹中
发表于 2021-3-16 16:18:06 | 显示全部楼层
回复 7# qixiaobin0715


    这个代码你自己测试的时候能成功吗?
发表于 2021-3-16 16:55:00 | 显示全部楼层
回复 9# Batcher
ren命令好讨厌,错了都不知是错在哪里,就copy吧。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. md newfolder
  4. for %%a in (*.jpg) do (
  5.     set "str=%%~na"
  6.     set "str=!str:~1,-1!"
  7.     set /a str+=999
  8.     copy "%%a" "newfolder\!str!.jpg"
  9. )
  10. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
西京宁音 + 1 乐于助人

查看全部评分

发表于 2021-3-16 17:28:57 | 显示全部楼层
本帖最后由 went 于 2021-3-16 17:38 编辑

参考此贴http://www.bathome.net/viewthread.php?tid=55367&highlight=%C5%C5%D0%F2
做个小改动就行,显示没问题就把16行的REM删掉
  1. @echo off & cd /d "%~dp0"
  2. REM 图片文件夹
  3. set "dir=%~dp0"
  4. REM 图片后缀
  5. set "ext=.jpg"
  6. set "str=0000000000"
  7. REM 开始序号
  8. set "startIndex=1000"
  9. REM 排序代码
  10. set "code=(for /r "%dir%" %%i in ("*%ext%"^) do @(set "n=%%~ni" ^& call set "n=%str%%%n:~1,-1%%" ^& call echo %%n:~-10%%?%%i ^)^) ^| sort"
  11. REM 顺序更名
  12. for /f "tokens=1* delims=?" %%i in ('%code%') do (
  13.         echo %%j
  14.         call set "n=%str%%%startIndex%%"
  15.         call echo %%n:~-4%%.jpg
  16.         REM call rename "%%j" "%%n:~-4%%.jpg"
  17.         set /a "startIndex+=1"
  18.         echo -------------------------
  19. )
  20. pause&exit
复制代码

评分

参与人数 1技术 +1 收起 理由
西京宁音 + 1 乐于助人

查看全部评分

发表于 2021-3-16 20:11:08 | 显示全部楼层
  1. @echo off
  2. setlocal enableDelayedExpansion

  3. ::命名起始序号
  4. set n=1000
  5. ::图片所在目录
  6. set "mydir=E:\图片\1"

  7. pushd "%mydir%"
  8. for /l %%i in (1,1,3000)do (
  9.         set/a num=n+%%i-1
  10.         ren "(%%i).jpg" !num!.jpg
  11.         echo ren "(%%i).jpg" !num!.jpg
  12. )
  13. popd
复制代码

评分

参与人数 1技术 +1 收起 理由
西京宁音 + 1 乐于助人

查看全部评分

发表于 2021-3-16 22:18:44 | 显示全部楼层
回复 10# qixiaobin0715


for命令重复处理文件的问题可以参考:for命令教程第8页
http://bbs.bathome.net/thread-31727-1-1.html

解决方法之一是把 for 换成 for /f + dir
 楼主| 发表于 2021-3-17 01:00:47 | 显示全部楼层
本帖最后由 西京宁音 于 2021-3-17 01:39 编辑

回复 11# went


    感谢大佬,成功了!
 楼主| 发表于 2021-3-17 01:40:16 | 显示全部楼层
回复 12# cutebe


    感谢大佬!大佬的用时是最短的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 12:45 , Processed in 0.020162 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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