BAT 中的(英文括号问题

删除文件名中的英文括号

​
@echo off
mode con cols=50 lines=20
color 0a
setlocal enabledelayedexpansion

echo --------------------------------------------
echo 【批量更改当前目录中所有文件的文件名】-
echo 【不包括子文件夹】-
echo --------------------------------------------
echo 【请确认是否锁定文件类型】
echo 【0-锁定(默认)/1-不锁定】
echo 【建议锁定,这样批量改名不会影响文件类型(后缀)】
echo 【如果要替换文件后缀名:】
echo       【例如:将.jgp替换成.bmp】
echo       【请输入1】
echo 【回车确认】
set str_type=0
set /P str_type=【请输入1或0,默认0】:
set /P str_start=输入前缀字符【空字符直接回车】:
set /P str_end=输入后缀字符【空字符直接回车】:
set str1=(
set str2=(
set str3=)
set str4=)


:--------------------------------------
:先去掉文件名中的空格
for /f "tokens=*" %%i in ('dir/b') do (
set fn=%%i
set fn=!fn: =_!
ren "%%i" !fn!
)
:先去掉文件名中的空格
:--------------------------------------
:--------------------------------------
:再进行替换
echo str_type=%str_type%
if %str_type%==0 (
	for /f "tokens=*" %%i in ('dir/b') do (
		if not "%%i"=="%~nx0" (
			set fn=%%~ni
			set fn=!fn: =_!
			set fn=!fn:%str1%=%str2%!
			set "fn=!fn:%str3%=%str4%!"
			set fn=%str_start%!fn!%str_end%
			set fn=!fn!%%~xi
			ren "%%i" !fn!
			echo !fn!
		)
	)
) else (
if %str_type%==1 (
	for /f "tokens=*" %%i in ('dir/b') do (
		if not "%%i"=="%~nx0" (
			set fn=%%i
			set fn=!fn: =_!
			set fn=!fn:%str1%=%str2%!
			set "fn=!fn:%str3%=%str4%!"
			set fn=%str_start%!fn!%str_end%
			ren "%%i" !fn!
			echo !fn!
		)
	)
)
)
pause
:--------------------------------------
:--------------------------------------
set str1=9734
set str2=9077
set str3=0
set str4=%str1%%str2%%str3%@
:--------------------------------------
echo %str4%com
pause

​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菌王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值