Board logo

标题: [文件操作] 批处理把文件名改名遇到括号的问题 [打印本页]

作者: netdzb    时间: 2021-3-2 01:34     标题: 批处理把文件名改名遇到括号的问题

诸如这样的形式

abcgdgg(1).jpg
bhghh(2).jpg

文件夹下面有很多这样的文件名
如何批处理实现改名变成

abcgdgg1.jpg
bhghh2.jpg
作者: qixiaobin0715    时间: 2021-3-2 08:40

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.jpg) do (
  4.     set "str=%%a"
  5.     set "str=!str:)=!"
  6.     set "str=!str:(=!"
  7.     ren "%%a" "!str!"
  8. )
  9. pause
复制代码
上面代码运行后,会将所有括号都去掉。存在一定的局限性。
作者: netdzb    时间: 2021-3-2 09:02

回复 2# qixiaobin0715

下面的正则怎么实现啊?

诸如这样的形式

abcgdgg(1).jpg
bhghh(2).jpg

===>

abcgdgg1.jpg
bhghh2.jpg

这个怎么实现,我想半自动的模式把包含数字外面的括号去掉。
作者: qixiaobin0715    时间: 2021-3-2 09:49

需要用到第三方,这个没研究。
作者: netdzb    时间: 2021-3-2 10:09

回复 4# qixiaobin0715

ls *.jpg|grep '('
这是列出文件名,后面的改名怎么写?
作者: qixiaobin0715    时间: 2021-3-2 11:17

这个凑合能用:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.txt) do (
  4.     set "str1=%%a"
  5.     set "str2=%%~na"
  6.     set "str2=!str2:)=!"
  7.     set "str2=!str2:(=.!"
  8.     for %%b in ("!str2!") do (
  9.        set "str3=%%~xb"
  10.        set "str3=!str3:~1!"
  11.        for %%c in ("!str3!") do ren "%%a" "!str1:(%%~c)=%%~c!"
  12.     )
  13. )
  14. pause
复制代码





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