Board logo

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

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

思路1:
rem   这一版本的编辑if_exist   http://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   http://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   http://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   http://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
鼓励原创