标题: [文本处理] [已解决]如何批量修改同一个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 编辑
刚才搜索了一下,发现风版的这个代码比较适合:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir/b *.txt') do (
- set /a n+=1
- if not exist "!n!.txt" (ren "%%a" "!n!.txt") else call :loop "%%a"
- )
- pause&exit
- :loop
- set /a n+=1
- if exist "!n!.txt" goto loop
- ren "%~1" "!n!.txt"
- goto :eof
复制代码
唯一的缺憾是能在前面加一个识别码就好了,比如A1,A2这种。
作者: 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&exit
- :loop
- set /a n+=1
- if exist "!n!.txt" goto loop
- ren "%~1" "A!n!.txt"
- 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
稍稍改一下巡查大人的代码:- @echo off&setlocal enabledelayedexpansion
- set "n=1000"
- for /f "delims=" %%a in ('dir/b *.txt') do (
- set /a "n+=1"
- if not exist "A!n:~-3!.txt" (ren "%%a" "A!n:~-3!.txt") else call :loop "%%a"
- )
- pause&exit
- :loop
- set /a "n+=1"
- if exist "A!n:~-3!.txt" goto :loop
- ren "%~1" "A!n:~-3!.txt"
- goto :eof
复制代码
作者: Batcher 时间: 2008-10-29 15:32 标题: 回复 6楼 的帖子
多到“批处理教学&资料”版块看教程
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |