Board logo

标题: [原创]001,002,003式的批量重命名 [打印本页]

作者: 523066680     时间: 2008-7-21 07:49    标题: [原创]001,002,003式的批量重命名

思路1: rem 这一版本的编辑if_exist hi.baidu.com/523066680 @echo off&setlocal enabledelayedexpansion set /a i=0,j=0,k=0 for /f "tokens=*" %%a in ('dir *.jpg /b') do ( if !k! equ 9 (set /a k=0,j+=1) else (set /a k+=1) if !j! equ 10 (set /a j=0,i+=1) ren %%a !i!!j!!k!.jpg >nul 2>nul echo number!i!!j!!k! ) 思路2: rem 这一版本的编辑if_exist hi.baidu.com/523066680 @echo off&setlocal enabledelayedexpansion set /a i=0,j=0,k=0 for /f "tokens=*" %%a in ('dir *.jpg /b') do ( set /a k+=1 if !k! equ 9 (set j=) if !k! equ 100 (set i=) ren %%a !i!!j!!k!.jpg >nul 2>nul echo !i!!j!!k! ) 思路3:(速度慢 当时还不会set命令,利用重命名的性质) rem 这一版本的编辑if_exist hi.baidu.com/523066680 @echo off ren *.jpg *.[jpg] for %%a in (0 1 2 3 4 5 6 7 8 9) do ( for %%b in (0 1 2 3 4 5 6 7 8 9) do ( for %%c in (0 1 2 3 4 5 6 7 8 9) do ( color %%b%%c ren *.[jpg] final-%%a%%b%%c.jpg if not exist *.[jpg] cls &color 0b &echo OK!! &pause &exit ) ) ) 经三楼的提醒:思路二应改为: @echo off&setlocal enabledelayedexpansion set /a i=0,j=0,k=0 for /f "tokens=*" %%a in ('dir *.jpg /b') do ( set /a k+=1 if !k! equ 10 (set j=) if !k! equ 100 (set i=) ren %%a !i!!j!!k!.jpg >nul 2>nul echo !i!!j!!k! ) [ Last edited by 523066680 on 2008-7-22 at 09:06 AM ]

作者: 523066680     时间: 2008-7-21 09:14    标题: 本人之前写的…… 顺便发布一下

::如有不足之处(可以做到改善的) 欢迎来投诉或改正 hi.baidu.com/523066680 @echo off mode con cols=77 lines=12 title 某批处理初学者 hi.baidu.com/523066680 color 0b ::====================================================================== echo. echo.步骤一、在这里输入新文件名的开头 可直接回车(即命名为000 001 002)或(0 1 2) echo. 如输入a 则会重命名为a000 a001 a002.....或 a0 a1 a2...... echo. echo.不支持特殊符号 ^> ^< ^\ ^/ ^? ^" ^: ^| ^* 输入名字后不能输空格,该批处理不判断. echo. set /p no1=请输入: ::====================================================================== cls echo. echo.步骤二、在这里输入将被重命名文件的格式 echo. echo. echo.不支持特殊符号 ^> ^< ^\ ^/ ^? ^" ^: ^| ^* 空格,或是直接回车。该批处理不判断. echo.&echo. set /p no2=请输入: if not exist *.%no2% (cls &echo 不存在%no2%格式的文件,请正确输入,按任意键退出 &pause>nul &exit) if /i %no2%==bat (cls &echo 不支持重命名bat格式文件(本文件会被重命名,导致....) &pause &exit) cls ::====================================================================== :Second cls echo.执行的时候显示“存在一个重名文件,或是找不到文件”请不要马上关闭,等待执行 echo. echo.选择模式a:重命名成000 001 002,限制为999个文件(可更改) echo.选择模式b:重命名为1 2 3 4 5 ....,限制为10000个文件(可更改) echo. set /p action="在此输入:" if /i "%action%"=="a" (goto :ren1-1) if /i "%action%"=="b" (goto :ren2-1) else (goto :second) ::====================================================================== :ren1-1 cls ren *.%no2% *.[%no2%] for %%a in (0 1 2 3 4 5 6 7 8 9) do ( for %%b in (0 1 2 3 4 5 6 7 8 9) do ( for %%c in (0 1 2 3 4 5 6 7 8 9) do ( color %%b%%c &title %%a%%b%%c.%no2% echo. %no1%%%a%%b%%c.%no2% ren *.[%no2%] %no1%%%a%%b%%c.%no2%>nul 2>nul if not exist *.[%no2%] cls &color 0b &echo OK!! &pause &exit ) ) ) ::======================================================================= :ren2-1 ren *.%no2% *.[%no2%] for /l %%a in (1,1,10000) do ( echo. %no1%%%a%no2% ren *.[%no2%] %no1%%%a.%no2%>nul 2>nul if not exist *.[%no2%] cls &color 0b &echo OK!! &pause &exit )

作者: qianmo717     时间: 2008-7-22 05:22
思路2: rem 这一版本的编辑if_exist hi.baidu.com/523066680 @echo off&setlocal enabledelayedexpansion set /a i=0,j=0,k=0 for /f "tokens=*" %%a in ('dir *.jpg /b') do ( set /a k+=1 if !k! equ 9 (set j=) if !k! equ 100 (set i=) ren %%a !i!!j!!k!.jpg >nul 2>nul echo !i!!j!!k! ) 红色部分是否为if !k! gtr 9

作者: 523066680     时间: 2008-7-22 08:54
嗯……这位大哥问的好,因为我有怀疑但却没有深入探究 说明我态度不对。 @echo off&setlocal enabledelayedexpansion set /a i=0,j=0,k=0 for /l %%a in (1,1,30) do ( set /a k+=1 if !k! gtr 9 (set j=) if !k! equ 100 (set i=) ren %%a !i!!j!!k!.jpg >nul 2>nul echo !i!!j!!k! ) pause 答案: 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 无误 ====================my god!!!================== 谢谢哈 我发现我的思路二之处 出现了错误 给你加分 以示感谢,而且 这个帖子放了一天 只有你回帖哦 好感激 [ Last edited by 523066680 on 2008-7-22 at 09:07 AM ]

作者: luowei14     时间: 2008-10-2 16:28
鼓励原创