找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26075|回复: 5

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

[复制链接]
发表于 2021-3-2 01:34:01 | 显示全部楼层 |阅读模式
诸如这样的形式

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

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

abcgdgg1.jpg
bhghh2.jpg
发表于 2021-3-2 08:40:55 | 显示全部楼层
  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
复制代码
上面代码运行后,会将所有括号都去掉。存在一定的局限性。
 楼主| 发表于 2021-3-2 09:02:24 | 显示全部楼层
回复 2# qixiaobin0715

下面的正则怎么实现啊?

诸如这样的形式

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

===>

abcgdgg1.jpg
bhghh2.jpg

这个怎么实现,我想半自动的模式把包含数字外面的括号去掉。
发表于 2021-3-2 09:49:03 | 显示全部楼层
需要用到第三方,这个没研究。
 楼主| 发表于 2021-3-2 10:09:25 | 显示全部楼层
回复 4# qixiaobin0715

ls *.jpg|grep '('
这是列出文件名,后面的改名怎么写?
发表于 2021-3-2 11:17:06 | 显示全部楼层
这个凑合能用:
  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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 12:05 , Processed in 0.017877 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表