• bat文件修改或替换文件内容


    rem 定义变量延迟环境,关闭回显 
    @echo off&setlocal enabledelayedexpansion 
    rem 读取a.txt所有内容 
    for /f "eol=* tokens=*" %%i in (a.txt) do ( 
    rem 设置变量a为每行内容 
    set a=%%i 
    rem 如果该行有123,则将其改为456 
    set "a=!a:123=456!" 
    rem 把修改后的全部行存入$ 
    echo !a!>>$) 
    rem 用$的内容替换原来a.txt内容 
    move $ a.txt

    出处:https://blog.csdn.net/everdayPHP/article/details/78919020

    ===============================================================

    查找固定的内容并替换的为固定文本的情况:

    文件A.txt是需要替换的文件,运行下面这个批处理:

    @echo off&setlocal EnableDelayedExpansion
    for /f "delims=" %%b in ('type A.txt') do (
    set "str=%%b"&set "str=!baistr:ABC=123!"&set "str=!str:XYZ=AFK!"
    echo !str! >>new_A.txt
    )
    start new_A.txt

    下面这个是不去空行的,有必要你就用吧,有点长!你复制过去删除多余空格,不行留邮箱发给你。百度老是存在这个问题,贴出来再复制回去格式就不一样了。真气人!!!

    @echo off&setlocal EnableDelayedExpansion
    for /f "delims=" %%a in ('findstr /n .* A.txt') do (
    set "str=%%a"
    set "str=!str:ABC=123!"
    set "str=!str:XYZ=AFK!"
    echo !str:~1! >>tmp.txt
    )
    for /f "delims=" %%b in ('type tmp.txt') do (
    set "str=%%b"
    if "!str!"==": " (
    call echo. >>new_A.txt
    ) else (
    echo !str:~1! >>new_A.txt
    ))
    del tmp.txt&start new_A.txt

    出处:https://zhidao.baidu.com/question/84256975.html

    =============================================================

    根据上面的参考,自己稍微修改点,可以适用于自己的需求的程序

     自己联系和测试程序

    rem 定义变量延迟环境,关闭回显 
    @echo off
    setlocal enabledelayedexpansion 
    
    ::goto :aa
    ::goto :bb2
    goto :cc
    
    
    rem 读取a.txt所有内容 
    for /f "eol=* tokens=*" %%i in ('type test.txt') do ( 
    rem 设置变量a为每行内容 
    set a=%%i
    rem 如果该行有123,则将其改为456 
    echo !a!--
    set "a=!a:dd*=456!"
    rem 把修改后的全部行存入$ 
    echo !a!>>$)
    rem 用$的内容替换原来a.txt内容 
    move $ test.txt
    goto :eof
    
    
    :aa
    for %%i in (test.txt) do set file=%%~fi
    echo ==========
    for /f "delims=" %%i in ('type test.txt') do (
    set str=%%i
    set "str=!str:dd=456!"
    echo !str!>>$
    )
    move $ test.txt
    goto :eof
    
    
    :bb1
    set old=
    for /f "delims=" %%a in ('findstr .* test.txt') do (
    set "str=%%a"
    set "str=!str:ABC=123!"
    set "str=!str:XYZ=AFK!"
    echo !str!
    )
    
    
    
    goto :eof
    
    
    :bb2
    set old=
    rem 查找并匹配最后一行,包含king的字符串
    for /f "eol=*" %%a in ('findstr /b "king" test.txt') do (set "old=%%a")
    echo %old%===============
    rem 再次查找完全陪陪的行,并替换queen的字符串
    for /f "delims=" %%b in ('type test.txt') do (
    set "str=%%b"
    if "!str!"=="%old%" (set str=queen[00-11-22])
    echo !str!>>$
    )
    move $ test.txt
    goto :eof
    
    
    :cc
    set aa=kjk  dfdasf jlksj ij hgn my name AA
    set bb=my
    echo.%aa% | findstr /C:"%bb%"
    goto :eof
    View Code
  • 相关阅读:
    spring-boot-route(七)整合jdbcTemplate操作数据库
    spring-boot-route(六)整合JApiDocs生成接口文档
    spring-boot-route(五)整合Swagger生成接口文档
    spring-boot-route(四)全局异常处理
    spring-boot-route(三)实现多文件上传
    spring-boot-route(二)读取配置文件的几种方式
    spring-boot-route(一)Controller接收参数的几种方式
    国庆,要干几件大事
    栈与队列简介
    一文了解Zookeeper
  • 原文地址:https://www.cnblogs.com/mq0036/p/13803098.html
Copyright © 2020-2023  润新知