标题: [文件操作] 批处理文件改名有没有更简单的办法 [打印本页]
作者: null 时间: 2008-8-4 10:28 标题: 批处理文件改名有没有更简单的办法
昨天从刚上下了部小说,网页格式的,我准备做成UMD,不过下载下来的小说网页文件名不便于整理,于是便写了这么个改名的BAT。
小说网页的文件名比较有规律,在处理过程中还是比较省事的
小说网页的文件名为:
artview_6709_1.html
......
artview_6762_1.html
一共五十四个文件,
我的想法就是把它们的名字改成:
1.html
......
54.html
我处理代码如下:-
- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1-3 delims=_" %%i in ('dir /b *.html') do (
- set a=%%j
- set b=!a:67=!
- if "!b!"=="09" set b=9
- set /a c=!b!-8
- ren %%i_%%j_%%k !c!.html
- )
复制代码
请高手指点,还有没有其它的方法,或是我的代码哪些部分还可以进行精减
[呵,从现在开始,写代码坚决分行,养成好的习惯。]
作者: pusofalse 时间: 2008-8-4 10:36
复杂了,本来三行可以搞定。- @echo off
- for %%a in (*.html) do (
- set/a n+=1
- call ren "%%a" %%n%%.html
- )
- pause>nul
复制代码
[ 本帖最后由 pusofalse 于 2008-8-4 11:12 编辑 ]
作者: null 时间: 2008-8-4 11:08
版主的代码测试没有通过哦,提示:
存在一个重名文件,或是找不到文件。
然后只有artview_6709_1.html这个文件被改名了,改后的名字成了.html
作者: pusofalse 时间: 2008-8-4 11:12
原帖由 null 于 2008-8-4 11:08 发表
版主的代码测试没有通过哦,提示:
存在一个重名文件,或是找不到文件。
然后只有artview_6709_1.html这个文件被改名了,改后的名字成了.html
谢谢提醒~~ 真的是太粗心了。 你的重命名还有什么要求吗?
比如说,要按照时间顺序,还是按照名称顺序 重命名?
作者: null 时间: 2008-8-4 11:17
对啊,按照
我的想把就是一一对应改名:
artview_6709_1.html > 1.html
......
artview_6762_1.html > 54.html
作者: pusofalse 时间: 2008-8-4 11:19
按照名称?
文件名不断变化的只是67**吗?
作者: null 时间: 2008-8-4 11:42 标题: 回复 6楼 的帖子
对啊,,,。。。。。。
作者: pusofalse 时间: 2008-8-4 11:44
- @echo off
- for /f "delims=" %%a in ('dir/b/on *.html') do (
- set/a n+=1
- call,ren %%~sfa %%n%%%%~xa
- )
- pause
复制代码
作者: namejm 时间: 2008-8-4 11:44
用计数循环比较好一点,演示代码如下:- @echo off
- setlocal enabledelayedexpansion
- for /l %%i in (6709,1,6762) do (
- set /a num+=1
- ren artview_%%i_1.html !num!.html
- )
复制代码
作者: terse 时间: 2008-8-4 11:55
2楼的应该可以吧- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d *.html') do (
- set/a n+=1
- ren "%%i" !n!.html
- )
- pause>nul
复制代码
作者: null 时间: 2008-8-4 11:57
8、9楼代码测试都通过
哎啊,吃亏还是吃在对命令参数不熟,另外主要还是缺少经验,
DIR /ON
多好的参数啊,
跟管理员也学到一招,这种思路我还真没想到过呢
学习了,感谢版主以及管理员同志!
10楼的代码我就没测试了,因为文件都名都被改完了,嘿嘿。。。
不过还是要感谢。。
[ 本帖最后由 null 于 2008-8-4 12:02 编辑 ]
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |