[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
这样可以重复运行吧,只是针对楼上固定格式的文件名(即从第七个字符开始截取)。
  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=0123456789"
  3. for %%i in (*.*) do (
  4.     if "%%~nxi" neq "%~nx0" (
  5.         set /a n=0
  6.         set name=%%~ni
  7.         echo %str%|findstr !name:~,1!>nul&& ren "%%~nxi" "!name:~6!%%~xi"
  8.     )
  9. )
  10. pause
复制代码
测试环境可以这样:
  1. ::测试环境生成
  2. @echo off
  3. md 测试目录
  4. cd 测试目录
  5. del/q *
  6. cd.>"001 - 萨顶顶 - 万物生.mp3"
  7. cd.>"萨顶顶 - 神香.wma"
  8. cd.>"003 - 邓丽君 - 月亮代表我的心.mp3"
  9. cd.>"戴娆 - 绽放.mp3"
  10. cd.>"010 - 梦之旅 - 铃儿响叮当.mp3"
  11. cd.>"卓依婷 - 捉泥鳅.mp3"
  12. cd.>"009 - 周杰伦 - 稻香.wma"
  13. cd.>"005 - Lene - Pretty Young Thing.wma"
  14. cd.>"M2M - The Day You Went Away.mp3"
复制代码

[ 本帖最后由 lhjoanna 于 2008-11-19 22:11 编辑 ]
1

评分人数

TOP

恩,谢谢pusofalse的指教。我对于findstr命令还不熟,还在学习中。刚才总是在想怎么才能重复运行。也就是对于我修改后的测试环境中如何区分已经有没有编号。实在没想到什么好方法,想的也很粗糙。按照你的建议,代码如下,在楼主的测试环境中可以通过运行,可是我修改后的环境中却不行。想要重复运行的话,感觉应该是不是应给出个编号与文件名的设置规则之类的,也就是如何区分编号与文件名(例如这样的文件:012 - 013 - 邓丽君 - 月亮代表我的心.mp3应该怎么算?)
     下面这个不能重复运行的。
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%i in (*.*) do (
  3.     if "%%~nxi" neq "%~nx0" (
  4.         for /f "tokens=1* delims=- " %%j in ("%%~ni") do ren "%%~nxi" "%%k%%~xi"
  5.     )
  6. )
  7. pause
复制代码
还望版主继续指教。

[ 本帖最后由 lhjoanna 于 2008-11-20 00:18 编辑 ]
1

评分人数

TOP

返回列表