Board logo

标题: [文件操作] 批处理文件改名有没有更简单的办法 [打印本页]

作者: null    时间: 2008-8-4 10:28     标题: 批处理文件改名有没有更简单的办法

昨天从刚上下了部小说,网页格式的,我准备做成UMD,不过下载下来的小说网页文件名不便于整理,于是便写了这么个改名的BAT。

小说网页的文件名比较有规律,在处理过程中还是比较省事的
小说网页的文件名为:

artview_6709_1.html
......
artview_6762_1.html

一共五十四个文件,
我的想法就是把它们的名字改成:

1.html
......
54.html

我处理代码如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-3 delims=_" %%i in ('dir /b *.html') do (
  4. set a=%%j
  5. set b=!a:67=!
  6. if "!b!"=="09" set b=9
  7. set /a c=!b!-8
  8. ren %%i_%%j_%%k !c!.html
  9. )
复制代码
请高手指点,还有没有其它的方法,或是我的代码哪些部分还可以进行精减

[呵,从现在开始,写代码坚决分行,养成好的习惯。]
作者: pusofalse    时间: 2008-8-4 10:36

复杂了,本来三行可以搞定。
  1. @echo off
  2. for %%a in (*.html) do (
  3. set/a n+=1
  4. call ren "%%a" %%n%%.html
  5. )
  6. 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

  1. @echo off
  2. for /f "delims=" %%a in ('dir/b/on *.html') do (
  3.   set/a n+=1
  4.   call,ren %%~sfa %%n%%%%~xa
  5. )
  6. pause
复制代码

作者: namejm    时间: 2008-8-4 11:44

  用计数循环比较好一点,演示代码如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (6709,1,6762) do (
  4.     set /a num+=1
  5.     ren artview_%%i_1.html !num!.html
  6. )
复制代码

作者: terse    时间: 2008-8-4 11:55

2楼的应该可以吧
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i  in ('dir /b /a-d *.html') do (
  3. set/a n+=1
  4. ren "%%i" !n!.html
  5. )
  6. 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