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

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

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

如题:

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

请教如何写批处理?谢谢朋友们!
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

回复 6楼 的帖子

多到“批处理教学&资料”版块看教程
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

稍稍改一下巡查大人的代码:
  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
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

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

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


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

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

是对这个语法不了解

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

再次感谢!

TOP

原帖由 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& ...


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

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

希望本论坛越办越好!

TOP

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

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

TOP

是这个意思么?
  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
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 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这种。

TOP

返回列表