[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理把文件名改名遇到括号的问题

诸如这样的形式

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

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

abcgdgg1.jpg
bhghh2.jpg

  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
复制代码
上面代码运行后,会将所有括号都去掉。存在一定的局限性。

TOP

回复 2# qixiaobin0715

下面的正则怎么实现啊?

诸如这样的形式

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

===>

abcgdgg1.jpg
bhghh2.jpg

这个怎么实现,我想半自动的模式把包含数字外面的括号去掉。

TOP

需要用到第三方,这个没研究。

TOP

回复 4# qixiaobin0715

ls *.jpg|grep '('
这是列出文件名,后面的改名怎么写?

TOP

这个凑合能用:
  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
复制代码

TOP

返回列表