【笔记4-3】批处理脚本系列:替换指定文本文件中的指定字符串

替换指定文本文件中的指定字符串

通过以下代码可以将file.txt中的字符串“其它”替换为“其他”

@echo off
echo.
setlocal enabledelayedexpansion
cd.>file_new.txt
echo 正在替换文件中的字符串。。。
echo.
for /f %%a in (file.txt) do (
set str=%%a
set str=!str:其它=其他!
echo !str!>>file_new.txt
)
ren file.txt fiie_old.txt
ren file_new.txt file.txt
echo 成功替换文件中指定的字符串
set str=

代码解析:

  • 1.setlocal enabledelayedexpansion为启动变量延时扩充功能,大致可理解为在for循环中及时更新变量,详细理解请参考延时变量
  • 2.cd.>后接文件名的作用是在当前目录下创建该文件
  • 3.for /f的作用是将后面 in括号中的文件打开,并按照每一行分为一个元素,这里是将file.txt的内容分行,%%a依次代表文件中的每一行
  • 4.定义变量str并赋值%%a,str即file.txt的某一行
  • 5.str=!str:其它=其他!,由内到外,首先,str:其它是指,str中的“其它”,可以参考cmd常用符号讲解中的第四点,然后=其他是将所有的其它换成了其他,两个!是延迟环境变量,最后将替换后的str赋值给str就完成了字符替换

输出结果:
【笔记4-3】批处理脚本系列:替换指定文本文件中的指定字符串_第1张图片

你可能感兴趣的:(批处理文件,shell,cmd,字符串)