中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 21:11
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助] 批量更改文件名(已解决)
可打印版本  2,053 / 16
第1楼 userwww 发表于 2007-09-11 15:27
初级用户 发帖 57 积分 136
[求助] 批量更改文件名(已解决)
我想批量更改某目录下所有的.mp3

文件名前面是没有规律的,但后面是两个"+"号中间夹带有5个数字符号,我想把两个"+"号中的编号及两个"+"号都删掉
如:把 alsdkfj12+12548+.mp3, uoqor+89751+.mp3, .... 中国人+98562+.mp3 改成为 alsdkfj12.mp3, uoqor.mp3, .... 中国人.mp3

问题已解决,谢谢两位热心的大侠

[ Last edited by userwww on 2007-9-13 at 09:46 PM ]
第2楼 wudixin96 发表于 2007-09-11 18:12
银牌会员 发帖 931 积分 1,928


  1. @echo off
  2. for /r %%i in (*.mp3) do (
  3. call :th %%~ni
  4. call ren "%%i" "%%nm%%.mp3"
  5. )
  6. pause

  7. :th
  8. set nm=%1
  9. set nm=%nm:+=%
  10. set nm=%nm:~0,-5%
wudixin96于: 2007-09-11 18:01



请先测试
第3楼 userwww 发表于 2007-09-11 18:23
初级用户 发帖 57 积分 136
出现:"存在一个重名文件,或是找不到文件"。

不知什么原因,
第4楼 wudixin96 发表于 2007-09-11 18:31
银牌会员 发帖 931 积分 1,928
我这测试没有问题
第5楼 bbq5201 发表于 2007-09-11 18:32
初级用户 发帖 51 积分 136

@echo off
for /r %%i in (*.mp3) do (
for /f "tokens=1,2,3 delims=+" %%a in ("%%i") do ren "%%i" "%%~na".mp3
)
pause

\


测试成功.!!!!!!!!!!!!!

[ Last edited by bbq5201 on 2007-9-11 at 10:26 PM ]
第6楼 userwww 发表于 2007-09-11 18:50
初级用户 发帖 57 积分 136
Originally posted by bbq5201 at 2007-9-11 06:32 PM:
\


谢谢回复,
可是显示"命令语法不正确"
第7楼 userwww 发表于 2007-09-11 18:57
初级用户 发帖 57 积分 136
Originally posted by wudixin96 at 2007-9-11 06:12 PM:



请先测试



谢谢指点,可以用了,但有些歌名改不了,还有些删得太多了,把整个文件名都删了
第8楼 wudixin96 发表于 2007-09-11 19:08
银牌会员 发帖 931 积分 1,928


  1. @echo off
  2. for /r %%i in (*.mp3) do (
  3. call :th "%%~ni"
  4. call ren "%%i" "%%nm%%.mp3"
  5. )
  6. pause

  7. :th
  8. set nm=%~1
  9. set nm=%nm:~0,-7%
wudixin96于: 2007-09-12 08:19



。。

[ Last edited by wudixin96 on 2007-9-12 at 08:31 AM ]
第9楼 bbq5201 发表于 2007-09-11 19:08
初级用户 发帖 51 积分 136
Originally posted by userwww at 2007-9-11 06:50 PM:
Originally posted by bbq5201 at 2007-9-11 06:32 PM:
\


谢谢回复,
可是显示"命令语法不正确"



也许没做判断吧..!!!!!
第10楼 userwww 发表于 2007-09-11 22:54
初级用户 发帖 57 积分 136
Originally posted by wudixin96 at 2007-9-11 07:08 PM:



发现又忘了考虑文件名有空格了,现在再试试?



可以用了,谢谢

[ Last edited by userwww on 2007-9-13 at 05:25 PM ]
第11楼 userwww 发表于 2007-09-11 23:45
初级用户 发帖 57 积分 136
Originally posted by bbq5201 at 2007-9-11 06:32 PM:
\


测试成功.!!!!!!!!!!!!!

谢谢,这下可以了,但发现个小问题:文件名中有点(.)时,它就会把点后面的部分给删了
第12楼 bbq5201 发表于 2007-09-13 19:06
初级用户 发帖 51 积分 136
@echo off
for /r %%i in (*.mp3) do (
for /f "delims=+" %%a in ("%%i") do ren "%%i" "%%~xna".mp3
)
pause

这样吧!
第13楼 userwww 发表于 2007-09-13 20:21
初级用户 发帖 57 积分 136
用了12楼的内容,那个点的问题解决了,但又出了个新问题,好像改下面那个文件名后,生成多一个扩展名,有两个扩展名,改其它文件没事,就是下面那个有问题,不知怎么回事

013王心凌_爱你+00006+.mp3 >>> 013王心凌_爱你.mp3.mp3

[ Last edited by userwww on 2007-9-13 at 08:23 PM ]
第14楼 userwww 发表于 2007-09-13 21:43
初级用户 发帖 57 积分 136
把12楼代码中的扩展名改为*号,就没有13楼的问题了,谁能解释一下
第15楼 bbq5201 发表于 2007-09-13 22:28
初级用户 发帖 51 积分 136
请高手帮忙了...!!

[ Last edited by bbq5201 on 2007-9-13 at 10:36 PM ]
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023