标题: [文件操作] BAT怎样批量给文件按当前视图的顺序添加“前缀(序号)”? [打印本页]
作者: xzwcn 时间: 2013-9-15 15:58 标题: BAT怎样批量给文件按当前视图的顺序添加“前缀(序号)”?
如A文件夹中有文件如下排列:
A.XXX
B.XXX
C.XXX
D.XXX
........
Z.XXX
运行批处理后,实现的效果:
01.A.XXX
02.B.XXX
03.C.XXX
04.D.XXX
........
n.Z.XXX
注意:文件名中可能会包含“!”号,要处理。
参考:
【已解决】_批处理命令ren执行时遇到感叹号时报错如何解决呢? - BAT求助&讨论 - 批处理之家 批处理_BAT_CMD_DOS_VBS_Perl_Python_PowerShell - Powered by Discuz!
http://www.bathome.net/viewthrea ... p;extra=&page=1
作者: weichenxiehou 时间: 2013-9-15 16:38
本帖最后由 weichenxiehou 于 2013-9-15 17:16 编辑
回复 1# xzwcn
将以下批处理放到该目录下运行即可,可以正确处理文件名带感叹号的文件。楼主可说的是只处理文件哦,可不包括文件夹哦。还有按照你的意思,文件的个数不能多于99个。- @echo off
- set n=100
- for /f "delims=" %%a in ('dir/a-d /b') do (
- if not "%%a"=="%~nx0" (
- set "str=%%a"&set/a n+=1
- setlocal enabledelayedexpansion
- ren "!str!" "!n:~-2!.!str!"
- endlocal
- )
- )
复制代码
作者: xzwcn 时间: 2013-9-17 16:44
回复 2# weichenxiehou
谢谢提醒!
如果要按当前视图顺序添加,要怎样修改呢?
如:
一文件夹的当前视图排列情况是这样的:
D.TXT
A.TXT
B.TXT
L.TXT
运行上面的代码后,结果变为:
01.A.TXT
02.B.TXT
03.C.TXT
04.L.TXT
但这不是我想要的结果,我希望的结果是这样的:
01.D.TXT
02.A.TXT
03.B.TXT
04.L.TXT
这样的效果能做到么?
(应用背景:有时候按字母或数据排列的顺序并非我们想要的)
作者: DAIC 时间: 2013-9-17 16:46
回复 3# xzwcn
那你得说清楚当前视图是按照什么属性排序的
大小?日期?
作者: xzwcn 时间: 2013-9-17 16:59
回复 4# DAIC
这个要看情况的。。可不可以自动识别到当前是什么方式排序呢?系统的---文件夹选项--查看---文件夹选项,是可以“自动"识别当前视图的,
不知道这个在DOS能不能实现。
作者: xzwcn 时间: 2014-4-25 11:15
回复 xzwcn
将以下批处理放到该目录下运行即可,可以正确处理文件名带感叹号的文件。楼主可说的是只处理 ...
weichenxiehou 发表于 2013-9-15 16:38
如果不保留原有命名,要怎么操作呢?
如:
一文件夹的当前视图排列情况是这样的:
D.TXT
A.TXT
B.TXT
L.TXT
运行上面的代码后,结果变为:
01.TXT
02.TXT
03.TXT
04.TXT
作者: Batcher 时间: 2014-4-25 13:18
回复 6# xzwcn - @echo off
- set n=100
- for /f "delims=" %%a in ('dir /a-d /b') do (
- if not "%%a"=="%~nx0" (
- set "str=%%a"
- set /a n+=1
- setlocal enabledelayedexpansion
- ren "!str!" "!n:~-2!%%~xa"
- endlocal
- )
- )
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |