标题: [文本处理] 【已解决】求批处理:替换文本中指定的文字 [打印本页]
作者: yyz219 时间: 2022-1-7 13:18 标题: 【已解决】求批处理:替换文本中指定的文字
本帖最后由 yyz219 于 2022-1-22 21:38 编辑
- 设文本 a.txt 里面内容:
-
- D:\桌面\Desktop\哈哈.reg
- ***************************
- 希望的结果是,文本里面内容变为:
-
- D:\桌面\Desktop\哈哈.cmd
- 【需要替换的是:最好3个字符(其它内容要保持不变)】
-
- 谢谢
- ++++++++++++++++++++++++++++++++++++++++
- 问题解决了:
- 方法1.(很快)
- @echo off
- ::下面这行设置你要替换的文件名,这里是159.txt,改成你自己的
- ::将 .reg 替换为 .bat
- set file=159.txt
- if exist 259.txt del 259.txt
- for /f "tokens=*" %%i in (%file%) do call :begin ^"%%i^"
- goto :eof
- :begin
- set var=%~1
- if defined var set var=%var:.reg=.bat%
- if defined var echo %var% >> 259.txt
- exit
-
-
- 方法2.(慢慢的)
- @echo off
- set "file=a.txt"
- powershell "(gc '%file%') -replace '(.*\.)reg','$1cmd'">b.txt
复制代码
作者: MengHanLOVE 时间: 2022-1-7 14:50
如果是文件名后缀修改的话可以使用以下bat
- rename *.reg *.bat
- 也可以是这个
- ren *.reg *.bat
复制代码
如果是文件内的内容我还不会呢...
作者: qixiaobin0715 时间: 2022-1-7 16:35
示范要典型,否则会产生误解。是要修改扩展名吗?
作者: smss 时间: 2022-1-7 16:58
ANSI编码- @Echo off&SetLocal EnableDelayedExpansion
- for /f "delims=" %%i in (a.txt)do set n=%%i&if !n:~-3!==reg echo !n:~,-3!cmd>b.txt
- pause
复制代码
作者: Nsqs 时间: 2022-1-7 17:58
- @echo off
- set "file=a.txt"
- powershell "(gc '%file%') -replace '(.*\.)reg','$1cmd'">b.txt
复制代码
作者: yyz219 时间: 2022-1-7 18:58
回复 5# Nsqs
成功。就是有一点慢
非常感谢
作者: yyz219 时间: 2022-1-9 07:52
回复 5# Nsqs
真的可以 谢谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |