中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]001,002,003式的批量重命名
作者:
标题: [原创]001,002,003式的批量重命名 上一主题 | 下一主题
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『楼 主』:  [原创]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 ]




2008-7-21 07:49
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 2 楼』:  本人之前写的…… 顺便发布一下

::如有不足之处(可以做到改善的) 欢迎来投诉或改正 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 )




2008-7-21 09:14
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
qianmo717
初级用户





积分 68
发帖 32
注册 2007-12-9
状态 离线
『第 3 楼』:  

思路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


   此帖被 +2 点积分      点击查看详情   
评分人:【 523066680 分数: +2  时间:2008-7-22 08:58


2008-7-22 05:22
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 4 楼』:  

嗯……这位大哥问的好,因为我有怀疑但却没有深入探究 说明我态度不对。 @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 ]




2008-7-22 08:54
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
luowei14
初级用户




积分 193
发帖 98
注册 2007-1-17
状态 离线
『第 5 楼』:  

鼓励原创




这家伙很聪明 什么都没留下
2008-10-2 16:28
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: