批处理修改文件夹名名

后使用快捷导航没有帐号?
只需一步,快速开始
查看: 765|回复: 3
求助各位高手写一个文件名批量修改的批处理代码
UID609006在线时间 小时积分142帖子离线16945 天注册时间
初级会员, 积分 142, 距离下一级还需 58 积分
求助各位高手写一个文件名批量修改的批处理代码,搞了好久看不懂,非常感谢!
一组包含两个文件,文件名如下:
0_2_040218_浙F00000_P1.jpg
0_2_040218_浙F00000_plate.jpg
2_1_042045_浙F11111_P1.jpg
2_1_042045_浙F11111_plate.jpg
1_3_052022_浙F22222_P1.jpg
1_3_052022_浙F22222_plate.jpg
要实现的效果:
UID225033在线时间 小时积分13375帖子离线16945 天注册时间
本帖最后由 SenFe 于
20:47 编辑
你要求修改后的文件名最后丙位是&_P1&为&_0&,&_plate&为&_1&吗?
代码@echo off
for /f &delims=& %%i in ('dir /b/a-d &*.jpg&') do call :sc &%%i&
pause
:sc
set &na=%~1&
set &nb=%na:~4,15%&
set &nb=%nb:_=%&
set &na=%na:~30%&
set &na=%na:plate=1%&
set &na=%na:P1=0%&
echo &%~1--&%nb%%na%&
ren %~1 &%nb%%na%&
goto :eof复制代码
保存为.bat文件放到要修改文件名的文件夹中,运行即可
运行结果测试&0_2_040218_浙F00000_P1.jpg--&40_0.jpg&
&0_2_040218_浙F00000_plate.jpg--&40_1.jpg&
&1_3_052022_浙F22222_P1.jpg--&52_0.jpg&
&1_3_052022_浙F22222_plate.jpg--&52_1.jpg&
&2_1_042045_浙F11111_P1.jpg--&42_0.jpg&
&2_1_042045_浙F11111_plate.jpg--&42_1.jpg&复制代码
UID225033在线时间 小时积分13375帖子离线16945 天注册时间
你上面的和下面的不是一一对应呀,下面的结果中那些,下划线后面的那个数字(就是文件名中的最后一位)是哪儿来的?
UID609006在线时间 小时积分142帖子离线16945 天注册时间
初级会员, 积分 142, 距离下一级还需 58 积分
你要求修改后的文件名最后丙位是&_P1&为&_0&,&_plate&为&_1&吗?
非常感谢!
Powered by查看:1209|回复:5
setlocal EnableDelayedExpansion
for /f &delims=& %%a in ('dir/b/ad') do (
for /f &delims=& %%i in ('dir/b/a-d &%%~nxa\*.*&') do (
ren &%%~nxa\%%~nxi& &%%~nxa-!a!%%~xi&
set /a a+=1
echo 重命名完毕,按任意键结束
以上这段是按文件夹名+序号,来修改文件名,但不按原有文件顺序。是乱序修改。。。。请高手帮忙看下。怎么能做到按原有的文件顺序修改文件名。
论坛运营团队的非正规军
源文件是什么顺序
这个世界的矛盾就在于:知道得多的人太少,还觉得知道得太少;知道的少的人太多,还要装知道得太多。
引用:原帖由 不明飞行物 于
10:27 发表
源文件是什么顺序 不好意思。本来有发源文件顺序。可能是发的时候误删了。源文件的顺序是以数字序列排序的。例:文件夹名为:ACD.2.3-1,对应的文件夹内的文件名就是ACD.2.3-1-1、ACD.2.3-1-2、ACD.2.3-1-3,以此类推。但文件名超过10个后,在重命名的时候。会先命名ACD.2.3-1-1的文件,然后不是命名ACD.2.3-1-2,而是把ACD.2.3-1-10,命名成2,ACD.2.3-1-11命名成3,以此类推。
因文件太多。而文件夹的顺序经常会有调整,前缀几乎都是相同,就是“-”后的序列号会有变动,而文件夹一变动,相应该文件夹内的文件名也要跟着文件夹来变。文件夹的命名规则就是:&ACD.2.3-& +&&&序号&,对应文件夹内就是&文件夹名称& + &当前文件夹内的文件序号&&&两个都是以数字1开始的流水号编写。
本帖最后由 sssony 于
11:23 编辑
论坛运营团队的非正规军
没看懂你的排序规则,现在有一个思路可以试试
在你脚本中dir命令后面跟参数
C:\Users\Alien&dir /?
显示目录中的文件和子目录列表。
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
&&[/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
&&[drive:][path][filename]
& && && && &&&指定要列出的驱动器、目录和/或文件。
&&/A& && && & 显示具有指定属性的文件。
&&属性& && && &D&&目录& && && && && & R&&只读文件
& && && && && &H&&隐藏文件& && && && &A&&准备存档的文件
& && && && && &S&&系统文件& && && && &I&&无内容索引文件
& && && && && &L&&解析点& && && && & -&&表示“否”的前缀
&&/B& && && & 使用空格式(没有标题信息或摘要)。
&&/C& && && & 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
& && && && &&&禁用分隔符显示。
&&/D& && && & 跟宽式相同,但文件是按栏分类列出的。
&&/L& && && & 用小写。
&&/N& && && & 新的长列表格式,其中文件名在最右边。
&&/O& && && & 用分类顺序列出文件。
&&排列顺序& &&&N&&按名称(字母顺序)& &&&S&&按大小(从小到大)
& && && && && &E&&按扩展名(字母顺序)& &D&&按日期/时间(从先到后)
& && && && && &G&&组目录优先& && && &&&-&&反转顺序的前缀
&&/P& && && & 在每个信息屏幕后暂停。
&&/Q& && && & 显示文件所有者。
&&/R& && && & 显示文件的备用数据流。
&&/S& && && & 显示指定目录和所有子目录中的文件。
&&/T& && && & 控制显示或用来分类的时间字符域。
&&时间段& && &C&&创建时间
& && && && &&&A&&上次访问时间
& && && && &&&W&&上次写入的时间
&&/W& && && & 用宽列表格式。
&&/X& && && & 显示为非 8.3 文件名产生的短名称。格式是 /N 的格式,
& && && && &&&短名称插在长名称前面。如果没有短名称,在其位置则
& && && && &&&显示空白。
&&/4& && && & 用四位数字显示年
可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。
这个世界的矛盾就在于:知道得多的人太少,还觉得知道得太少;知道的少的人太多,还要装知道得太多。
引用:原帖由 不明飞行物 于
11:41 发表
没看懂你的排序规则,现在有一个思路可以试试
在你脚本中dir命令后面跟参数
C:\Users\Alien&dir /?
显示目录中的文件和子目录列表。
DIR [drive:][path][filename] [/A[[:]attributes]]&&[/C] [/D] [/L] [/N]
&&[/O[ ... 关键就是这个DIR参数上。我试过了。就是因为DIR调出的文件顺序问题。导致命名顺序乱的。我们在视窗中看到的文件排列顺序是:1到100.但在DIR下面的文件排列顺序却是1、10~19、2、20~29、3、30~39.这样的文件排列顺序。DIR的几个参数我都试过了。。没办法改变这种排列方式。
问题已经解决。用原文件的号。替换前缀。
setlocal EnableDelayedExpansion
for /f &delims=& %%a in ('dir/b/ad') do (
for /f &delims=- tokens=1,*& %%i in ('dir/b/a-d &%%a&') do (
ren &%%~nxa\%%~nxi-%%~nxj& &%%a-%%j&
echo 重命名完毕,按任意键结束直接上代码:
setlocal ENABLEDELAYEDEXPANSION
set path="C:\Users\llq\Desktop\test"
set suf="*.doc"
rem %path% #使用变量
for /f "delims=" %%i in ('dir /b/s/a-d %path%\%suf%') do (
set h="%%~ni"
for %%j in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do set h="!h:%%j=%%j!"
ren "%%i" "!h!"%suf%
关于代码中的语法,不懂的可以看我另一篇cmd命令语法,或直接看cmd的帮助。
版权声明:本文为博主原创,未经博主允许不得转载。君,已阅读到文档的结尾了呢~~
批处理删除文件夹 批处理 复制..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
批处理+excel批量更改文件名并将文件放入同名的文件夹
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口批处理批量修改文件名_百度知道
批处理批量修改文件名
就是把后面的(空格)hi替换成(下划线)初稿.doc,我想是其修改为xxxxx(下划线)初稿,其文件名为xxxxx(空格)hi.doc 转换成 xxxxx_初稿.xxxxx这几个中文字符长度不固定,最后文件名为xxxxx_初稿.xxxxx hi.doc,xxxxx的长度不固定但都是中文,修改后不能变化.doc我有上万个doc文件
我想要的是如何用批处理操作.谢谢给软件的热心人
提问者采纳
tokens=1呵呵@echo offfor /dir/ %%i in ('f &) do (ren &%%i %%j&b *,2 delims= &quot.doc' %%i_您好
提问者评价
测试正常,感谢回答~~谢谢小楼的帮助
其他类似问题
184人觉得有用
为您推荐:
其他3条回答
en * hi.bat”,双击就可以了。把这个文件放到你的DOC文件目录.doc *_初稿.doc把上面的内容放到记事本中,存为“改名
批量修改文件名 V1.0 查找或替换指定目录下的文件名中的某个字符,非常实用。希望能对你有用
我以前有用过批量修改文件名一个软件..你到网上找找..
批量修改文件名的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 批量修改文件名 的文章

 

随机推荐