[批次] 批次更改副档名,但部分档名以"点"开头导致无法执行

楼主: yamitsuki (发呆中滴大头狗)   2016-12-20 15:06:43
想请问各位是否有碰过档名开头被加上"点"后
部分档案可以批次更改副档名,部分不行的问题呢
手边要更名的档案格式为
.123.ext 或 123.ext
其中123为档案的数字编号,ext为要被替换掉的副档名
目标是将其批次更名为
123.ext2
所以先写了以下批次档进行测试,单独放入底层资料夹执行没问题
=========================
@echo off
rename *.ext *.ext2
=========================
又因为档案分散在多个且多层的资料夹下(各层资料夹都是数字编号)
所以就先简单的用以下批次档来处理
=========================
@echo off
dir /s ren *.ext *.ext2
dir /s ren *.* *.ext2
=========================
其中第二行ren是因为有些档案的档名开头存在"."的时候会没办法辨识
若直接只跑 *.ext会改不到,多加了将所有档案(*.*)都改掉
加了这行可以多处理掉一些,但还是会有一部分档案会改不到
想请问各位这样粗浅的处理是漏掉了什么,或是否有较好的解决方式呢?
作者: LPH66 (-6.2598534e+18f)   2016-12-21 00:22:00
不要 *.* 只写 .* 如何?
作者: nknudragon (想买合购鹿港玉珍斋 )   2016-12-21 23:28:00
forfiles
楼主: yamitsuki (发呆中滴大头狗)   2016-12-24 00:44:00
还是很感谢两位的建议,现在剩档名前的"."得解决 :)
作者: eight0 (欸XD)   2016-12-24 17:07:00
for /r %%i in (*.ext) do ren "%%i" "%%~ni.ext2"话说 dir 指令可以这样用?
作者: nknudragon (想买合购鹿港玉珍斋 )   2016-12-24 21:42:00
你要查的是如何移除正档名的.
楼主: yamitsuki (发呆中滴大头狗)   2016-12-25 01:20:00
查了一下,用/s可以显示所有目录与子目录下的档案,用在forfiles上也可以动作所以就没去注意比较正确的处理是说想找的就是如何移除正档名开头的.没错,还在找寻中批次处理的部分eight0版友提供的方法已经解决,感谢
作者: eight0 (欸XD)   2016-12-25 10:30:00
移除开头的点 http://codepad.org/xoQMtqWJ

Links booklink

Contact Us: admin [ a t ] ucptt.com