Board logo

标题: [文件操作] [已解决]批量重命名的批处理如何替换扩展名中的指定字符或汉字 [打印本页]

作者: thp2008    时间: 2023-6-22 15:33     标题: [已解决]批量重命名的批处理如何替换扩展名中的指定字符或汉字

示例:
比如,我有下列的文件夹及文件,我想对,当前目录下,所有子目录中的压缩文件重命名


E:\TEST\abc.ra删r
E:\TEST\def.r删ar
E:\TEST\001\DAS.7z.001删
E:\TEST\001\DAS.7z.002删
E:\TEST\002\als.删zip
E:\TEST\002\lks.删rar删

就是我一次性,想把这种文件名中的删字去除掉,相当于替换了空值,应该怎么写?
还有这种带.001 .002 的后面有汉字的,不知道怎么处理。

最后,在批处理中,能自已定义这个替换的变量,方便,以后,如果有其它汉字或字符的时候,好修改.

感谢!
作者: buyiyang    时间: 2023-6-22 16:10

  1. @echo off
  2. set /p ex=input:
  3. setlocal enabledelayedexpansion
  4. for /r %%i in (*%ex%*) do (
  5.     set "x=%%~xi"
  6.     ren "%%i" "%%~ni!x:%ex%=!"
  7. )
复制代码

作者: thp2008    时间: 2023-6-22 16:33

挺好,我测试了一下,大部分都成功了。
但是像这种就失败了。

set "x=.002删"
ren "E:\KuaKe\影视\A区 \A区.7z.002删" "A区.7z!x:删=!"
)
系统找不到指定的文件。

就是 影视\A区 \ 后面有半个空格一样的东西,我试了目录有空格是可以的,这肯定不是空格,应该是某种特殊占位符。删除或都用空格代替,都是可以成功,那肯定不是空格。

算了,这种特殊的就手工处理一下吧。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2