批处理中实现替换文本内容
程序员文章站
2024-01-01 16:25:22
首先: 注册表添加一个或两个 reg_dword 值: hkey_local_machine\software\microsoft\command&nb...
首先:
注册表添加一个或两个 reg_dword 值:
hkey_local_machine\software\microsoft\command processor\enableextensions
或 hkey_current_user\software\microsoft\command processor\enableextensions
设值为1
新建文件aaa.bat:
@echo off
set f=c:\aaa.txt
set f2="c:\aaa.bak.txt"
for /?>%f%
if exist %f2% del %f2%
for /f "tokens=* delims=%" %%l in (%f%) do (
set line=%%l
set line=!line:for=f_o_r!
echo !line!>>%f2%
)
执行aaa.bat
所有的for都被替换为f_o_r并写入aaa.bak.txt
缺点:原文件(aaa.txt)空行无法读取
哦,学习
第一次接触批处理中变量的内容替换
set str=12345
set str=%str:234=000%
echo %str%
结果10005
固命按fosjos提供的,命令扩展后就可以用批处理来替换文本了
另命令扩展默认是启用的,我们只需将延迟变量环境扩展启用就可以了,另也可以通过命令行实现:
start cmd /v:on /c test.bat
注册表添加一个或两个 reg_dword 值:
hkey_local_machine\software\microsoft\command processor\enableextensions
或 hkey_current_user\software\microsoft\command processor\enableextensions
设值为1
新建文件aaa.bat:
@echo off
set f=c:\aaa.txt
set f2="c:\aaa.bak.txt"
for /?>%f%
if exist %f2% del %f2%
for /f "tokens=* delims=%" %%l in (%f%) do (
set line=%%l
set line=!line:for=f_o_r!
echo !line!>>%f2%
)
执行aaa.bat
所有的for都被替换为f_o_r并写入aaa.bak.txt
缺点:原文件(aaa.txt)空行无法读取
哦,学习
第一次接触批处理中变量的内容替换
set str=12345
set str=%str:234=000%
echo %str%
结果10005
固命按fosjos提供的,命令扩展后就可以用批处理来替换文本了
另命令扩展默认是启用的,我们只需将延迟变量环境扩展启用就可以了,另也可以通过命令行实现:
start cmd /v:on /c test.bat