无忧启动论坛

标题: 请教! 用批处理查找并替换一个文件中包含定向符的文本 [打印本页]

作者: 2013kyj    时间: 2021-3-3 05:57
标题: 请教! 用批处理查找并替换一个文件中包含定向符的文本
本帖最后由 2013kyj 于 2021-3-3 06:00 编辑

比如有个a.ime文件,要把他里面的123456改成654321,使用下面的代码, 可以成功替换:
  1. @echo off
  2. ren a.ime a.txt
  3. setlocal Enabledelayedexpansion
  4. for /f "tokens=*" %%a in (a.txt) do (
  5. set var=%%a
  6. set var=!var:123456=654321!
  7. echo !var!>>b.txt
  8. )
  9. endlocal
  10. ren b.txt a.ime
  11. del a.txt
复制代码
但是,如果我想把文件中的>MAD<替换所>EDR< 应该怎样修改批处理? 下面的代码替换不成功! 也就是要查找的文本,在包含定向符的情况下,进行处理! 或者还有其它更简单的替换方法吗? 请精通批处理的大侠指教, 非常感谢!

  1. @echo off
  2. ren a.ime a.txt
  3. setlocal Enabledelayedexpansion
  4. for /f "tokens=*" %%a in (a.txt) do (
  5. set var=%%a
  6. rem 下面的替换失败
  7. set var=!var:>MAD<=>EDR<!
  8. echo !var!>>b.txt
  9. )
  10. endlocal
  11. ren b.txt a.ime
  12. del a.txt
复制代码



作者: magicgenius    时间: 2021-3-3 08:00
可以在定向符前面加一个 ^ 符号。
作者: 2013kyj    时间: 2021-3-3 08:31
magicgenius 发表于 2021-3-3 08:00
可以在定向符前面加一个 ^ 符号。

你好, 非常感谢,
添加之后,还是没有效果
作者: plusv    时间: 2021-3-3 10:05



Test.rar

44.13 KB, 下载次数: 3, 下载积分: 无忧币 -2


作者: holley2008    时间: 2021-3-3 10:12
我这边测试
  1. set var=!var:^>MAD^<=^>EDR^<!
复制代码

正常,记得编码ansi。
作者: 2010wlm    时间: 2021-3-3 10:19
应该是语法问题,dos里的“>"符号是个操作符
作者: 2013kyj    时间: 2021-3-5 19:39
plusv 发表于 2021-3-3 10:05

感谢




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3