Board logo

标题: [文本处理] [已解决]如何批量修改同一个folder下面的file name? [打印本页]

作者: tony    时间: 2008-10-29 13:47     标题: [已解决]如何批量修改同一个folder下面的file name?

本帖最后由 CrLf 于 2012-1-11 14:40 编辑

如题:

同一个folder下面的file有多个名称散乱的,我想通过bat将他改成按序号排列,比如A001,A002之类的顺序。

请教如何写批处理?谢谢朋友们!
作者: tony    时间: 2008-10-29 14:07

本帖最后由 CrLf 于 2012-1-11 14:40 编辑

刚才搜索了一下,发现风版的这个代码比较适合:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir/b *.txt') do (
  3.    set /a n+=1
  4.    if not exist "!n!.txt" (ren "%%a" "!n!.txt") else call :loop "%%a"
  5. )
  6. pause&exit
  7. :loop
  8.   set /a n+=1
  9.   if exist "!n!.txt" goto loop
  10.   ren "%~1" "!n!.txt"
  11. goto :eof
复制代码
唯一的缺憾是能在前面加一个识别码就好了,比如A1,A2这种。
作者: Batcher    时间: 2008-10-29 14:09

是这个意思么?
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir/b *.txt') do (
  3.    set /a n+=1
  4.    if not exist "!n!.txt" (ren "%%a" "A!n!.txt") else call :loop "%%a"
  5. )
  6. pause&exit
  7. :loop
  8.   set /a n+=1
  9.   if exist "!n!.txt" goto loop
  10.   ren "%~1" "A!n!.txt"
  11. goto :eof
复制代码

作者: more    时间: 2008-10-29 14:13

唯一的缺憾是能在前面加一个识别码就好了,比如A1,A2这种。

那就自己加上去嘛...
在每个!n!前面都加上A就好了,比如"A!n!.txt"
作者: tony    时间: 2008-10-29 14:17

原帖由 Batcher 于 2008-10-29 14:09 发表
是这个意思么?@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir/b *.txt') do (
   set /a n+=1
   if not exist "!n!.txt" (ren "%%a" "A!n!.txt") else call :loop "%%a"
)
pause& ...


感谢版主这么快的回复!(热泪满面中~~~)

经过测试,这个代码合适我的需要,严重 感谢!

希望本论坛越办越好!
作者: tony    时间: 2008-10-29 14:21

原帖由 more 于 2008-10-29 14:13 发表

那就自己加上去嘛...
在每个!n!前面都加上A就好了,比如"A!n!.txt"


本人菜鸟一只,不知道在哪里加

开始我在所有n!的前面加了A,结果出错

是对这个语法不了解

版主们能不能稍微讲解一下,以便加深对这个的理解!

再次感谢!
作者: more    时间: 2008-10-29 14:41

稍稍改一下巡查大人的代码:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "n=1000"
  3. for /f "delims=" %%a in ('dir/b *.txt') do (
  4.    set /a "n+=1"
  5.    if not exist "A!n:~-3!.txt" (ren "%%a" "A!n:~-3!.txt") else call :loop "%%a"
  6. )
  7. pause&exit
  8. :loop
  9.   set /a "n+=1"
  10.   if exist "A!n:~-3!.txt" goto :loop
  11.   ren "%~1" "A!n:~-3!.txt"
  12. goto :eof
复制代码

作者: Batcher    时间: 2008-10-29 15:32     标题: 回复 6楼 的帖子

多到“批处理教学&资料”版块看教程




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2