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

[文件操作] 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 17:16 编辑

回复 1# xzwcn
将以下批处理放到该目录下运行即可,可以正确处理文件名带感叹号的文件。楼主可说的是只处理文件哦,可不包括文件夹哦。还有按照你的意思,文件的个数不能多于99个。
  1. @echo off
  2. set n=100
  3. for /f "delims=" %%a in ('dir/a-d /b') do (
  4.   if not "%%a"=="%~nx0" (
  5.     set "str=%%a"&set/a n+=1
  6.     setlocal enabledelayedexpansion
  7.     ren "!str!" "!n:~-2!.!str!"
  8.     endlocal
  9.   )
  10. )
复制代码
看得多说得多,远比不上写得多。

TOP

回复 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
这样的效果能做到么?

(应用背景:有时候按字母或数据排列的顺序并非我们想要的)

TOP

回复 3# xzwcn


那你得说清楚当前视图是按照什么属性排序的
大小?日期?

TOP

回复 4# DAIC

这个要看情况的。。可不可以自动识别到当前是什么方式排序呢?系统的---文件夹选项--查看---文件夹选项,是可以“自动"识别当前视图的,

不知道这个在DOS能不能实现。

TOP

回复  xzwcn
将以下批处理放到该目录下运行即可,可以正确处理文件名带感叹号的文件。楼主可说的是只处理 ...
weichenxiehou 发表于 2013-9-15 16:38



    如果不保留原有命名,要怎么操作呢?
如:
一文件夹的当前视图排列情况是这样的:
D.TXT
A.TXT
B.TXT
L.TXT
运行上面的代码后,结果变为:
01.TXT
02.TXT
03.TXT
04.TXT

TOP

回复 6# xzwcn
  1. @echo off
  2. set n=100
  3. for /f "delims=" %%a in ('dir /a-d /b') do (
  4.     if not "%%a"=="%~nx0" (
  5.         set "str=%%a"
  6.         set /a n+=1
  7.         setlocal enabledelayedexpansion
  8.         ren "!str!" "!n:~-2!%%~xa"
  9.         endlocal
  10.     )
  11. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表