bat为什么修改不了汉字文件名
① Windows环境中,使用批处理修改特定文件名中的特定字符或者汉字
@echo off&setlocal enabledelayedexpansion
echo,&set/p x=Step1.请输入文件后缀名(如txt,输入*表示所有文件):
echo,&set/p sign=Step2.请输入要去除的字符,直接回车跳过此步:
echo,&set/p change=Step3.请输入简繁替换汉字(如陈-^>陈),直接回车跳过此步:
echo,&echo,正在处理,请稍候...
for %%i in (*.%x%) do (
set "filename=%%i"
if defined sign set "filename=!filename:%sign%=!"
if defined change set "filename=!filename:%change:~,1%=%change:~-1%!"
if not "%%i"=="!filename!" ren "%%i" "!filename!"
)
echo,处理完毕!按任意键退出...
pause>nul
将以上内容保存到记事本里,修改后缀名为.bat,放到该目录下双击运行即可。
因为没有很仔细地调试,有什么bug欢迎追问指出。
② 想给文件更改名字,但是出现更改文件扩展名会导致文件不能使用
那是因为你的电脑设置成了,显示扩展名,然后你在修改文件名的时候连着扩展名一起给改le,所以就会出现提示了。
把你电脑设置一下就可以了。
打开“我的电脑”,点击菜单栏中的“工具”,“文件夹选项”“查看”,把“隐藏已知文件类型的扩展名”勾起来,点击“确定”就可以了。以后就不会出现类似问题了。
③ bat 批处理 怎样批量把文件名中的一个汉字替换为另一个
@echooff
title文件名字符替换
modeconcols=60lines=20
::文件要是重名,会提示错误。
&color0a
:1
seta=
setb=
setc=
cls&echo.
set/pa=请输入要被替换的字符:
cls&echo.
set/pb=请输入替换“!a!”的字符,若要去掉“!a!”,请直接回车:
for/f"delims="%%ain('dir/b/a/a-d')do(
if"%%~fa"neq"%~0"(
setxz=%%~na
ren"%%~fa""!xz:%a%=%b%!%%~xa"))
cls&echo.&set/pc=操作完成,输入0返回,输入其它任意字符退出
if"!c!"=="0"(goto1)else(exit)
GOTO:EOF
④ 批量建文件夹,名字含汉字就失败
将txt另存为bat的时候,将编码改为ANSI就可以了