@echo off&setlocal enabledelayedexpansion
for %%a in ("*(*)*.txt") do (
set "b=%%a"
set "b=!b:(=!"
set "b=!b:)=!"
if not exist "!b!" (ren "%%a" "!b!") else (
echo 存在一个重名文件,无法修改文件名 ) ) )
将当前文件夹所有txt文件名含有的括号替换成括号中的字符
追问如果文件名中左括号的左面还有个空格,怎样也一起替换掉?即把文件名中的“ (”修改成空
追答@echo off&setlocal enabledelayedexpansion
for %%a in ("*(*)*.txt" "*(*)*.txt") do (
set "b=%%a"
set "b=!b: (=!"
set "b=!b:) =!"
set "b=!b:(=!"
set "b=!b:)=!"
set "b=!b:(=!"
set "b=!b:)=!"
if not exist "!b!" (ren "%%a" "!b!") else (
echo 存在"!b!"文件,无法重名"%%a") )
那个是中文的(,不是有个空格,没注意到提问中给的文件名也是中文括号,已经修改可以处理中英文的圆括号,并且去掉英文圆括号前后的一个空格