找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18771|回复: 6

[文本处理] 【已解决】求批处理:替换文本中指定的文字

[复制链接]
发表于 2022-1-7 13:18:35 | 显示全部楼层 |阅读模式
本帖最后由 yyz219 于 2022-1-22 21:38 编辑
  1. 设文本  a.txt  里面内容:

  2. D:\桌面\Desktop\哈哈.reg
  3. ***************************
  4. 希望的结果是,文本里面内容变为:

  5. D:\桌面\Desktop\哈哈.cmd
  6. 【需要替换的是:最好3个字符(其它内容要保持不变)】

  7. 谢谢
  8. ++++++++++++++++++++++++++++++++++++++++
  9. 问题解决了:
  10. 方法1.(很快)
  11. @echo off
  12. ::下面这行设置你要替换的文件名,这里是159.txt,改成你自己的
  13. ::将 .reg 替换为 .bat
  14. set file=159.txt
  15. if exist 259.txt del 259.txt
  16. for /f "tokens=*" %%i in (%file%) do call :begin ^"%%i^"
  17. goto :eof
  18. :begin
  19. set var=%~1
  20. if defined var set var=%var:.reg=.bat%
  21. if defined var echo %var% >> 259.txt
  22. exit


  23. 方法2.(慢慢的)
  24. @echo off
  25. set "file=a.txt"
  26. powershell "(gc '%file%') -replace '(.*\.)reg','$1cmd'">b.txt
复制代码
发表于 2022-1-7 14:50:40 | 显示全部楼层
如果是文件名后缀修改的话可以使用以下bat
  1. rename *.reg *.bat
  2. 也可以是这个
  3. ren *.reg *.bat
复制代码
如果是文件内的内容我还不会呢...
发表于 2022-1-7 16:35:55 | 显示全部楼层
示范要典型,否则会产生误解。是要修改扩展名吗?
发表于 2022-1-7 16:58:43 | 显示全部楼层
ANSI编码
  1. @Echo off&SetLocal EnableDelayedExpansion
  2. for /f "delims=" %%i in (a.txt)do set n=%%i&if !n:~-3!==reg echo !n:~,-3!cmd>b.txt
  3. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
yyz219 + 1 不成功,辛苦了

查看全部评分

发表于 2022-1-7 17:58:13 | 显示全部楼层
  1. @echo off
  2. set "file=a.txt"
  3. powershell "(gc '%file%') -replace '(.*\.)reg','$1cmd'">b.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
yyz219 + 1 真的可以 谢谢

查看全部评分

 楼主| 发表于 2022-1-7 18:58:18 | 显示全部楼层
回复 5# Nsqs


    成功。就是有一点慢

非常感谢
 楼主| 发表于 2022-1-9 07:52:13 | 显示全部楼层
回复 5# Nsqs


     真的可以 谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 11:18 , Processed in 0.022943 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表