![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 22:46 |
共 47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创]001,002,003式的批量重命名 |
| 可打印版本 3,448 / 4 |
| 第1楼 523066680 | 发表于 2008-07-21 07:49 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
[原创]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 *. 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 *. final-%%a%%b%%c.jpg if not exist *. 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 ] |
|
| 第2楼 523066680 | 发表于 2008-07-21 09:14 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
本人之前写的…… 顺便发布一下 ::如有不足之处(可以做到改善的) 欢迎来投诉或改正 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 ) |
|
| 第3楼 qianmo717 | 发表于 2008-07-22 05:22 |
| 初级用户 发帖 32 积分 68 | |
|
思路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 |
|
| 第4楼 523066680 | 发表于 2008-07-22 08:54 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
嗯……这位大哥问的好,因为我有怀疑但却没有深入探究 说明我态度不对。
@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 ] |
|
| 第5楼 luowei14 | 发表于 2008-10-02 16:28 |
| 初级用户 发帖 98 积分 193 | |
|
鼓励原创
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |