- @echo off
- echo. & echo 注意,被处理的文本编码必须是ANSI编码方式,UTF-8编码或其他编码的文本是无法通过批处理替换其内的内容的。
- echo. & echo 输入文件名和后缀请按照(test.txt)的方式输入,本批处理不能处理多个文本,只能处理单个文本
- echo. & set /p "st=请输入要处理的文件名和后缀(例如file.txt):"
- echo. & set /p "str1=请输入想要替换的内容(可替换空格,部分特殊符号替换失败,需要在符号前加^):"
- echo. & set /p "str2=请输入替换后的内容(直接回车,则是删除文本):"
- echo. & echo 在替换中,请稍等。。。。。。
- (for /f "delims=" %%i in (%st%) do (
- set str=%%i
- call call set "str3=%%%%str:%%str1%%=%%str2%%%%%%"
- call echo %%str3%%
- )
- )>>"%st:~,-4% 副本.txt"
- echo. & echo 替换完成,已在批处理所在目录保存为副本
- echo. & pause
复制代码 是我搞错了你的需求,我以为你要处理的是文件名,原来要处理的是文本中的内容。对于文本中的内容,其实最好直接用查找替换。
上面的代码是针对单个文本的,稍后我会贴出针对多个文本的批量处理代码
注意被处理的文本必须是ANSI编码方式,要不然是会出现乱码的 |