[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 查看一个批量截取文件名批处理的错误

  1. @echo off
  2. color f3
  3. title 批量改名
  4. echo. 程序正在执行....
  5. setlocal enableDelayedExpansion
  6. for /f "delims=" %%m in ('dir /a:-d /b *.mp3') do (
  7. echo %%m&&set fn=%%m&&set name=!fn:~20!
  8. call echo %%name%%&&rename %%m %%name%%
  9. )
  10. echo. 执行成功!
  11. pause>nul
  12. goto :eof
复制代码
请各位大虾看看这个批处理哪里错了,还有为达到相同效果有没有更好的代码。。。。。

原帖由 dingding3224 于 2010-5-17 10:53 发表
谢谢了。。。。3楼的正确 2楼理论正确实际执行有点困难。。。不过还是谢谢
for /f "delims=" %%m in ('dir /a:-d /b *.mp3') do (
set fn=%%m
set name=!fn:~20!
call rename !fn! !name!
)
对于for语句中的内 ...

单纯从语法来说,1楼的代码该这样写:
  1. @echo off
  2. color f3
  3. title 批量改名
  4. echo. 程序正在执行....
  5. setlocal enableDelayedExpansion
  6. for /f "delims=" %%m in ('dir /a:-d /b *.mp3') do (
  7. set fn=%%m
  8. set fn=!fn:~20!
  9. echo.正在重命名 "%%m" 为 "!fn!"
  10. rename "%%m" "!fn!"
  11. )
  12. echo. 执行成功!
  13. pause>nul
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 3楼 的帖子

谢谢了。。。。3楼的正确 2楼理论正确实际执行有点困难。。。不过还是谢谢
for /f "delims=" %%m in ('dir /a:-d /b *.mp3') do (
set fn=%%m
set name=!fn:~20!
call rename !fn! !name!
)
对于for语句中的内部循环,不是很清楚。没有经过正规的学习,都是靠自己学习。。。不明白。。。这个里面为什么命令格式不正确??

[ 本帖最后由 dingding3224 于 2010-5-17 11:06 编辑 ]

TOP

  1. @echo off&color f3&title 批量改名&echo. 程序正在执行....
  2. for /f "tokens=1,2* delims=【】" %%a in ('dir /a:-d /b *.mp3') do echo.正在重命名【%%a】【%%b】%%c为%%c&ren "【%%a】【%%b】%%c" "%%c"
  3. echo. 执行成功!&pause>nul
复制代码

[ 本帖最后由 hanyeguxing 于 2010-5-16 11:10 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /a-d *.mp3') do (
  3. setlocal enabledelayedexpansion
  4. set str=%%~nxi
  5. set stt=!str:【额外赠送】【9小时快学国际音标】=!
  6. call ren !str! !stt!
  7. endlocal
  8. )
复制代码
如果你的MP3全部是你贴的图片那样的名字的话,这个或许可以满足你的要求
批量改名的需求太多了,每个人遇到的又不大相同,根据自己的情况来写一个简单点的就OK。
努力学习,努力挣分

TOP

返回列表