批处理批量修改文件名文件名前加序号

求BAT:删除所有子文件夹下同名文件(有N个版本,后缀+数字序号),保留最后一个版本 - BAT求助&讨论 -
批处理之家 批处理_BAT_CMD_DOS_VBS_Perl_Python_PowerShell - Powered by Discuz!
帖子22&积分34&技术0 &捐助0 &注册时间&
求BAT:删除所有子文件夹下同名文件(有N个版本,后缀+数字序号),保留最后一个版本
本帖最后由 awei 于
14:31 编辑
现在有很多软件操作,每保存一次文件,就会重新生成一个新的文件,文件名是一样的,但是,在后缀后面会自动增加一个数字序号,用来表示此文件的修改版本
往往文件完成后,会产生大量的前期版本文件,求一个一次性操作删除旧版本文件的BAT。
如:*.jpg.1 *.jpg.2 *.jpg.3 *.bmp.1 *.bmp.2 *.bmp.3 *.gif.1 *.gif.2 *.gif.3 ........
执行批处理后,所有文件夹及子文件夹,只保留最后的一个版本的文件,如*.jpg.3 *.bmp.3 *.gif.3
如果,文件夹中只有一个文件,同样保留,如,只有*.jpg.1,那么,保留。
但是,删除文件的提前是只在当前文件夹中作比较,也就是说,在不同的文件夹中,可能会有同名文件,不作统一的比较,只在本文件夹中保留同名文件的最后一个版本。
也就是说:
1.各个文件夹相对独立,不和其它文件夹作比较
2.相同文件夹下的不同格式及不同名称文件,不和其它格式及不同名称文件作比较,即00.jpg.*不会和00.bmp.*不会和00.gif.*作比较
帖子1117&积分1908&技术228 &捐助0 &注册时间&
@echo off
set n=0
for /f &delims=& %%i in ('dir /a-d /b &E:\test\&') do (
set /a n+=1
)
for /f &tokens=1-3 delims=.& %%a in ('dir /a-d /b &E:\test\&') do (
if %%c lss %n% (del &E:\test\%%a.%%b.%%c& /f /q)
)
pause复制代码
帖子93&积分191&技术25 &捐助0 &注册时间&
本帖最后由
22:13 编辑
@echo off
setlocal enabledelayedexpansion
for /f &delims=& %%i&&in ('dir /b&&*.jpg*') do (
set /a m+=1
set a=%%~xi
set _!m!=!a:.=!
)
set max=0
:stat
set /a d+=1
if&&!_%d%! gtr !max! (
set max=!_%d%!
)
if %d% lss !m! goto stat
echo !max!
for /f &delims=& %%i&&in ('dir /b&&*.jpg*') do (
set a=%%~xi
set k=!a:.=!
if !k! lss !max! del &%%i&
)
pause复制代码
帖子22&积分34&技术0 &捐助0 &注册时间&
首先非常感谢2楼和3楼的兄弟,谢谢~!!!
我赶紧试试先:loveliness:
帖子22&积分34&技术0 &捐助0 &注册时间&
& & 感谢兄弟~!
& & 不过,我刚才在试验的时候,将E:\test\替换成存放BAT的目录,运行后,发现了两个问题:
1.当前文件夹内,除了子文件夹外,所有文件都删除了,包括bAT本身。
2.子文件夹下的文件依然存在,没有变动。
帖子22&积分34&技术0 &捐助0 &注册时间&
& & 感谢这位兄弟~!
第一时间试验了下也发现了一个问题:
BAT只作用在当前的文件夹,子文件夹同样是没有变动。
我是希望所有的子文件夹都有同样的作用,谢谢~!
帖子22&积分34&技术0 &捐助0 &注册时间&
本帖最后由 awei 于
08:45 编辑
补充说明:
同时删除多个不同格式的文件,如*.jpg&&*.bmp
弱弱问,是不是可以用逗号来分开?
将('dir /b&&*.jpg*')
改成('dir /b *.jpg,.bmp*‘)
帖子22&积分34&技术0 &捐助0 &注册时间&
& & 我自己试了,还不会弄直接删除多个不同格式的文件。求教~!
我将:('dir /b *.jpg*')
改成:('dir /b /s *.jpg*') ,实现了作用于所有子文件夹的功能。:loveliness:
帖子156&积分239&技术17 &捐助0 &注册时间&
dir /s/b/aa *.jpg
列出当前文件夹下的所有jgp格式的文件,包括子目录中的文件
你再详细说明一下你的问题。
踏实一些点.不要着急.你想要的时间都会给你.
帖子22&积分34&技术0 &捐助0 &注册时间&
本帖最后由 awei 于
09:24 编辑
& & 我是文件夹中有多种格式的文件,但,它们都是在后缀的最后会加上.1 .2 .3 ...这样的序号,如:*.jpg.1 *.jpg.2& & *.bmp.1 *.bmp.2 .......
& &我在执行BAT时,希望只保留这些不同文件的最后一个,3楼的大神已经帮我实现了,只是,他只写了删除一种格式文件的,但我不会修改,请帮忙,谢谢~!
帖子22&积分34&技术0 &捐助0 &注册时间&
& & 谢谢你,我已经自己摸索出来了,加空格键就可以了,谢谢~!
如:('dir /b /s *.jpg* *.bmp*')
帖子22&积分34&技术0 &捐助0 &注册时间&
再次感谢:
2# pcl_test& &&&
3# & && && &
9# 慕夜蓝化
帖子156&积分239&技术17 &捐助0 &注册时间&
awei @echo off
setlocal enabledelayedexpansion
for /f &delims=& %%i in ('dir /s/b/ad') do (
& & pushd &%%~fsi&&call :a &*.jpg*& &*.bmp*&
)
pause&exit
:a
if not &%~1&==&& (
& & shift
& & for /f &tokens=*& %%a in ('dir /b/a-d/o-d %~1') do (
& && && && && & set/a n+=1
& && && && && & if not !n! equ 1 del /q &%%~fsa&
& && && && && & )
& & set &n=&
& & goto :a
& && &&&) else (
& & goto :eof
)复制代码删除除最新生成文件以外的所有文件, 你可以先试用一下,我这里测试可以。
踏实一些点.不要着急.你想要的时间都会给你.
帖子22&积分34&技术0 &捐助0 &注册时间&
各位大神,发现了一个问题:
这个检测功能存在一个全局性,如果我的各种格式文件中,有一个的后缀序号比较大,那么,执行程序后,所有文件夹中的文件都删除了,只保留下这个最大序号的文件了。。。。
如多个子文件夹里都存在:*.jpg.1 *.jpg.2 *.jpg.80 *.bmp.1 *.bmp.2
执行BAT后:所有文件夹都只保留了*.jpg.80这么一个文件了,连*.bmp文件也没有了。
如果多种格式的后缀最大序号相同,那么,都保留了。
如有*.jpg.80和*.bmp.80,那么,其它文件全删,保留这两个最大的。
求完善,谢谢~!
帖子22&积分34&技术0 &捐助0 &注册时间&
& & 也可以说是删除最新文件以外的文件,
& &但,需要多种不同格式文件并存,
&&也就是说,这个“最新”只针对同一个文件名的文件
如:*.jpg.1 *.jpg.2 *.jpg.80 *.jpg.521& &*.bmp.3 *.bmp.8 *.bmp.120 *.bmp.421 *.bmp.550 *.gif.20 *.gif.35 *.gif.45 *.gif.222
执行BAT后,保留:
*.jpg.521&&*.bmp.550&&*.gif.222
如果能实现&&在识别序号的基础上& &再针对相同文件名的文件作时间上的对比,优先保留最新时间的文件,则更加的理想。谢谢~!
[通过 QQ、MSN 分享给朋友]求bat批处理,文件夹名前加序号_百度知道
求bat批处理,文件夹名前加序号
在所有文件夹名前加序号 如,批量修改文件夹名求bat批处理、等)共几百个文件夹 改成(HD0001张三、HD0002李四:文件夹(张三、等)求一个批处理命令、李四
提问者采纳
d %%I in (%~dp0*) do (
set digi=000;a nn=!
set digi=;
set &#47!nn!%%~nxI&#34使此批处理与要加序号的文件夹在同一文件夹中;%%I&#34!nn:~-4!
ren &#34!digi,然后运行。有问题可Hi@setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION@echo offset nn=1for /HD; &#34!digi
其他类似问题
您可能关注的推广
批处理的相关知识
其他3条回答
==& &gt!&f &s /2&quot!&) do (set xz=%%aecho 正在替换:if &quot.set /*;!xz!*&ad &;p c=你想将!&quot!&nul)echo OK;==&quot!xz,请选择1或2; &quot!;b &#47!b;p a=你想替换什么字符:for &#47!a; set b=sdfsfdsf_abcdif &dir /nul 2&gt!替换城什么字符;'y &quot!move /; set b=oiewsdfcls&set &#47:%b%=%c%!a;delims=&quot!b;1& %%a in (&#39@echo off & setlocal enabledelayedexpansiontitle BAT-GO团队奉献 set a=set b=set c=set xz=cls&echo 替换sdfsfdsf_abcd
替换oiewsdfecho
学习下@setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION@echo offset nn=1for /d %%I in (%~dp0*) do (
set digi=000!nn!
set digi=!digi:~-4!
ren “%%I“ “HD!digi!%%~nxI“
set /a nn=!nn!+1)
@setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION@echo offset nn=1for /d %%I in (%~dp0*) do (
set digi=000!nn!
set digi=!digi:~-4!
ren “%%I“ “HD!digi!%%~nxI“
set /a nn=!nn!+1) 学习
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您还未登陆,请登录后操作!
求“批量加文件名前缀的批处理”
-就成为914-小黑,就是这个意思。望高手不吝赐教!在线等!
拖把更名器 V1.98i
天空软件站 下载就行,文件小但特好用
结合资源管理器右键菜单,支持 MP3/RM/RMVB/WMA/APE/OGG/WMV/ASF 标签更名,文件名、标签内码转换、繁简转换、汉字转拼音.支持序号、调用外部文本文件更名、网页文件标题提取更名、正则表达式、元变量、自动预览、撤消等.
支持序号更名,支持从文本文件调入文本更名,结合资源管理器的拖放操作,用起来很方便。
大家还关注将MP3的标题名称改成文件名_批处理吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:6,026贴子:
将MP3的标题名称改成文件名收藏
有手机录音MP3格式的,但是文件名称是无规则排列,标题名称是按照手机号码加序号排列的,想把每一个mp3录音文件的标题名字改为MP3的文件名。求大神们帮忙弄一个批处理文件。。。
http://www。bathome。net/thread-。html
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 文件名前面加序号 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信