|
xdonx
新手上路

积分 8
发帖 2
注册 2006-3-29
状态 离线
|
『楼 主』:
[已结]批量修改文件名前缀的批处理
我想把一个目录下的以AB开头的文件名改为ABC开头,
用ren AB*.* ABC*.*
发现改后的文件名少了个字符,如原来的AB123.TXT 变成了ABC23.TXT,后面的1没有了,请问如何解决?
───────────────── 版务记录 ─────────────────
执行:Will Sort
操作:修改标题 - 19796 - 请教重命名问题
说明:原主题作者在通知发出三日后仍未申诉或修改,由版主修改并进行处罚
提示:请访问 {7326}论坛新手必读,所有人的基本行为准则[转帖]
───────────────── 版务记录 ─────────────────
[ Last edited by willsort on 2006-3-30 at 15:42 ]
|
|
2006-3-29 14:15 |
|
|
doscc
中级用户
  
积分 256
发帖 93
注册 2006-3-26 来自 广东
状态 离线
|
『第
2 楼』:
@echo off
setlocal enabledelayedexpansion
for %%i in (AB*.*) do (
set name=%%i
set n1=!name:~0,2!
set n2=!name:~2!
ren %%i !n1!C!n2!
)
|
|
2006-3-29 18:00 |
|
|
3742668
荣誉版主
      
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
3 楼』:
setlocal enabledelayedexpansion
for %%i in (*.txt) do set cxs=%%i && ren !cxs! !cxs:b=bc!
ren *.bcat *.bat
endlocal
|
|
2006-3-29 18:28 |
|
|
willsort
元老会员
         Batchinger
积分 4432
发帖 1512
注册 2002-10-18
状态 离线
|
『第
4 楼』:
Re 3742668:
你的程序存在着一个小漏洞,当主文件名中含有不位于首部的字母B时,将会导致多余的替换操作。
Re doscc:
程序中保存变量n1,n2是没有必要的,可依照 3742668 兄的思路进行修改。
@echo off
setlocal enabledelayedexpansion
for %%i in (AB*.*) do set name=%%i&&ren %%i ABC!name:~2!
|

※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得! |
|
2006-3-30 09:55 |
|
|
xdonx
新手上路

积分 8
发帖 2
注册 2006-3-29
状态 离线
|
『第
5 楼』:
搞定了!
感谢大家,让我又学到了一招!:)
|
|
2006-3-30 10:01 |
|
|
doscc
中级用户
  
积分 256
发帖 93
注册 2006-3-26 来自 广东
状态 离线
|
『第
6 楼』:
Quote: | Originally posted by willsort at 2006-3-30 09:55:
Re 3742668:
你的程序存在着一个小漏洞,当主文件名中含有不位于首部的字母B时,将会导致多余的替换操作。
Re doscc:
程序中保存变量n1@... |
|
谢谢 版主提示!
我也主意到了
|
|
2006-3-30 15:15 |
|
|
catiav6
新手上路

积分 3
发帖 1
注册 2006-12-8
状态 离线
|
『第
7 楼』:
再请教
我用上述代码作类似的--更改文件名问题
结果发现一次最多只能改25个文件,再多就会进入死循环,就是
ABCCCCCC…….txt
请教是什么原因?
此帖被 +1 点积分 点击查看详情 评分人:【 】 | 分数: +1 | 时间:2006-12-23 03:06 |
|
|
|
2006-12-8 16:13 |
|
|
lxmxn
版主
       
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
|
2006-12-8 23:56 |
|
|
uemuem
初级用户
 
积分 153
发帖 68
注册 2006-10-12 来自 上海
状态 离线
|
|
2006-12-9 00:44 |
|