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

[文件操作] 批处理文件改名有没有更简单的办法

昨天从刚上下了部小说,网页格式的,我准备做成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. )
复制代码
请高手指点,还有没有其它的方法,或是我的代码哪些部分还可以进行精减

[呵,从现在开始,写代码坚决分行,养成好的习惯。]

复杂了,本来三行可以搞定。
  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 编辑 ]
心绪平和,眼藏静谧。

TOP

版主的代码测试没有通过哦,提示:

存在一个重名文件,或是找不到文件。

然后只有artview_6709_1.html这个文件被改名了,改后的名字成了.html

TOP

原帖由 null 于 2008-8-4 11:08 发表
版主的代码测试没有通过哦,提示:

存在一个重名文件,或是找不到文件。

然后只有artview_6709_1.html这个文件被改名了,改后的名字成了.html


谢谢提醒~~ 真的是太粗心了。 你的重命名还有什么要求吗?
比如说,要按照时间顺序,还是按照名称顺序 重命名?
心绪平和,眼藏静谧。

TOP

对啊,按照
我的想把就是一一对应改名:
artview_6709_1.html   > 1.html
......
artview_6762_1.html   > 54.html

TOP

按照名称?
文件名不断变化的只是67**吗?
心绪平和,眼藏静谧。

TOP

回复 6楼 的帖子

对啊,,,。。。。。。

TOP

  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
复制代码
心绪平和,眼藏静谧。

TOP

  用计数循环比较好一点,演示代码如下:
  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. )
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

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
复制代码

TOP

8、9楼代码测试都通过
哎啊,吃亏还是吃在对命令参数不熟,另外主要还是缺少经验,
DIR /ON
多好的参数啊,

跟管理员也学到一招,这种思路我还真没想到过呢

学习了,感谢版主以及管理员同志!

10楼的代码我就没测试了,因为文件都名都被改完了,嘿嘿。。。

不过还是要感谢。。

[ 本帖最后由 null 于 2008-8-4 12:02 编辑 ]

TOP

返回列表