&&先说下获取文件名数字部分的思路吧,如文件名为“红旅首发- www.hltm.net名侦探柯南543”,我们不妨这样来看文件名是由22个分隔符+543组成的,只要在for中将543前面的所有字符都做分隔符忽略掉是不是就可以获取到我们所想要的数字了。但问题是怎么确定哪些字符是分隔符?我们不妨再分析下,组成任意数字的是不是只有0-9的10个字符,于是我们通过变量替换将所有的数字替换掉,不就可以确定余下没有被替换的字符就是分隔符了。代码如下,请楼主自行备份文件后再测试:- @echo off
- for /f "delims=" %%a in ('dir /s /a-d /b 文件存放目录全路径*柯南') do call :lp "%%a" %%~na %%~xa
- goto :eof
- :lp
- set "str=%2"
- for /l %%a in (0,1,9) do call,set "str=%%str:%%a=%%"
- for /f "delims=%str%" %%a in ("%2") do ren %1 名侦探柯南第%%a集%3
复制代码
注:如是放在当前目录下执行,可以省去文件存放目录全路径
[ 本帖最后由 batman 于 2009-8-8 00:18 编辑 ] |