[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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
复制代码
我是小白,希望老师多多帮助

如果是文件名后缀修改的话可以使用以下bat
  1. rename *.reg *.bat
  2. 也可以是这个
  3. ren *.reg *.bat
复制代码
如果是文件内的内容我还不会呢...
生活所迫你,何不去所迫生活.

TOP

示范要典型,否则会产生误解。是要修改扩展名吗?

TOP

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

评分人数

    • yyz219: 不成功,辛苦了技术 + 1

TOP

  1. @echo off
  2. set "file=a.txt"
  3. powershell "(gc '%file%') -replace '(.*\.)reg','$1cmd'">b.txt
复制代码
1

评分人数

    • yyz219: 真的可以 谢谢技术 + 1

TOP

回复 5# Nsqs


    成功。就是有一点慢

非常感谢
我是小白,希望老师多多帮助

TOP

回复 5# Nsqs


     真的可以 谢谢
我是小白,希望老师多多帮助

TOP

返回列表