[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. echo. & echo 注意,被处理的文本编码必须是ANSI编码方式,UTF-8编码或其他编码的文本是无法通过批处理替换其内的内容的。
  3. echo. & echo 本批处理可以一次性处理多个文件,处理后的文本会生成副本文件,原文件不会删除
  4. echo. & echo 批处理默认处理txt文本,其他文件请修改代码
  5. echo. & set /p "str1=请输入被替换的文本:"
  6. for /f "delims=" %%i in ('dir /b *.txt') do (
  7. (for /f "delims=" %%j in (%%i) do (
  8. set "str3=%%j"
  9. setlocal enabledelayedexpansion
  10. set "str4=!str3:%str1%=%%~ni!"
  11. echo !str4!
  12. setlocal disabledelayedexpansion
  13. )
  14. )>>"%%~ni 副本.txt"
  15. )
  16. echo. & echo 替换完成,已在批处理所在目录生成新的副本文件
  17. echo. & pause
复制代码
将utf8转码为ansi,这个可以有现成的软件,自己搜一下吧。

TOP

  1. @echo off
  2. echo. & echo 注意,被处理的文本编码必须是ANSI编码方式,UTF-8编码或其他编码的文本是无法通过批处理替换其内的内容的。
  3. echo. & echo 本批处理可以一次性处理多个文件,处理后的文本会生成副本文件,原文件不会删除
  4. echo. & echo 批处理默认处理txt文本,其他文件请修改代码
  5. echo. & set /p "str1=请输入被替换的文本:"
  6. for /f "delims=" %%i in ('dir /b *.txt') do (
  7. (for /f "delims=" %%j in (%%i) do (
  8. set "str3=%%j"
  9. setlocal enabledelayedexpansion
  10. set "str4=!str3:%str1%=%%~ni!"
  11. echo !str4!
  12. setlocal disabledelayedexpansion
  13. )
  14. )>>"%%~ni 副本.txt"
  15. )
  16. echo. & echo 替换完成,已在批处理所在目录生成新的副本文件
  17. echo. & pause
复制代码
至于转换编码的部分,你自己找一下软件来进行转码吧。
1

评分人数

    • 8532200: 楼下已经解决了,,感谢你的回复技术 + 1

TOP

本帖最后由 lancer 于 2020-11-13 22:12 编辑

说实话,用批处理去做这个不是很好做,批处理处理txt文本的时候,你的txt文本必须是ANSI格式编码,否则会出现乱码。所以还需要先批量转换你的txt编码为ANSI,然后再替换。至于替换的批处理,倒是好写,不过批量转换编码,需要用到增强型的批处理脚本,你这个需求反而变得复杂了。以我目前的水平,写不了编码转换的部分,需要研究论坛里“批处理之家在线 HTA 脚本”,这个我还没有研究过。

TOP

返回列表