标题: [文本处理] 批处理能不能在原文本上替换内容后 存放在原文件里 [打印本页]
作者: yajiu 时间: 2018-11-8 21:45 标题: 批处理能不能在原文本上替换内容后 存放在原文件里
如。我要将文本123456 换成654321- @echo off
-
- setlocal Enabledelayedexpansion
- for /f "delims=" %%a in (a.txt) do (
- set var=%%a
- set var=!var:123456=654321!
- echo !var!>>a.txt
- )
- pause
复制代码
但这样的效果 原来的123456 还是在a.txt里 我的目的是 是用echo !var!>>a.txt 不生成新的另一个txt文件 再改名 然后123456 换成了654321 原来的123456也不存在
网上用的办法都是如下 我希望的不生成新 文本。然后再去删除- @echo off
- ren a.ime a.txt
- setlocal Enabledelayedexpansion
- for /f "tokens=*" %%a in (a.txt) do (
- set var=%%a
- set var=!var:123456=654321!
- echo !var!>>b.txt
- )
- endlocal
- ren b.txt a.ime
- del a.txt
复制代码
作者: Batcher 时间: 2018-11-8 21:50
优化一下效率还是可以- @echo off
- setlocal Enabledelayedexpansion
- (for /f "tokens=*" %%a in (a.ime) do (
- set var=%%a
- set var=!var:123456=654321!
- echo !var!
- ))>b.txt
- move /y b.txt a.ime
复制代码
BAT本身没有直接修改源文件的命令
作者: happy886rr 时间: 2018-11-8 21:56
用记事本打开,有个替换选项,换完点保存搞定。
作者: 523066680 时间: 2018-11-9 08:20
可以试试 sed.exe
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |