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.txtmove 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
复制代码

 

posted on   jack_Meng  阅读(30165)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-10-12 C#中的事件的订阅与发布
2019-10-12 c# Winform 开发分屏显示应用程序

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩