⭐⭐⭐一、脚本用途说明🌙🌙🌙:
把同一目录下的多个文件中的字符串123替换成字符串abc;
⭐⭐⭐二、操作步骤🌙🌙🌙:
1.将以下批处理脚本copy到本地任意目录,新建一个批量替换.bat文件(随各人喜好定义,文件名不固定);
2.因脚本中目录已经写成c:\test,故请在c盘创建一个test目录,并在该test目录下创建几个以t开头的txt文件,如:test1.txt,test2.txt.test3.txt等(随各人喜好,文件名、文件个数均不限定),但是创建的txt文件请包涵要替换的字符123;
3.直接点击运行批量替换.bat文件,然后打开创建的每个txt文件,观察会发现123都已经被替换成了abc
⭐⭐⭐三、总结🌙🌙🌙:
请各位多调试几次,爱动脑动手的小伙伴可以修改一下文件内容以及按照自己的思路尝试修改一下脚本内容,看看修改后执行的效果如何,这样的话,会理解的更为深刻一些
提示:如果是刚开始接触批处理这块的小伙伴,本脚本就是一个很好的学习范例,小伙伴们可以从中去扩展其他知识点,加油!
⭐⭐⭐四、脚本🌙🌙🌙
@echo off
rem 进入批处理文件所在的路径
cd c:\test
echo ***** Replace "123" as "abc" *****
rem 定义要替换的新旧字符串
set strOld=123
set strNew=abc
rem 定义变量修改本地化延期
setlocal enabledelayedexpansion
rem 循环取出要处理的文件名
for /f "tokens=*" %%i in ('dir c:\test\t*.txt /b') do (
set "var=%%i"
if not !var!.==. (
rem 单个文件一行行处理,将旧字段替换成新字段
for /f "tokens=*" %%j in (!var!) do (
set "tmp=%%j"
if not !tmp!.==. (
set "tmp=!tmp:%strOld%=%strNew%!"
rem 将处理后的每一行记录追加到temp.txt文件中
echo !tmp!>>temp.txt
)
)
rem 在单个文件的每一行经过替换操作后,将处理后的文本从temp.txt临时文件剪贴到目标处理文件中(剪贴后临时文件会自动删除)
move temp.txt !var!
)
)
pause
五、核心逻辑及思维导图:
DOS批处理脚本逻辑
1. 脚本用途
- 目的: 批量替换文件中的字符串。
- 操作: 将目录下文件中的字符串"123"替换为"abc"。
2. 操作步骤
- 步骤1: 复制脚本到本地目录并创建批处理文件。
- 步骤2: 在指定目录下创建包含特定字符串的文本文件。
- 步骤3: 运行批处理文件并检查替换结果。
3. 脚本内容
- 进入目录: 切换到包含文本文件的目录。
- 设置变量: 定义要替换的旧字符串和新字符串。
- 启用延迟变量展开: 为了在循环中正确处理变量。
- 循环处理文件: 对目录下的每个文本文件进行操作。
- 读取文件内容: 逐行读取文件内容。
- 替换字符串: 将每行中的旧字符串替换为新字符串。
- 写入临时文件: 将替换后的内容写入临时文件。
- 移动临时文件: 将临时文件内容移动到原文件,完成替换。
4. 脚本示例
- 命令:
@echo off
- 目录切换:
cd c:\test
- 变量设置:
set strOld=123
和set strNew=abc
- 循环命令:
for /f "tokens=*" %%i in ('dir c:\test\t*.txt /b') do
- 文件处理:
for /f "tokens=*" %%j in (!var!) do
- 字符串替换:
set "tmp=!tmp:%strOld%=%strNew%!"
- 写入临时文件:
echo !tmp!>>temp.txt
- 移动文件:
move temp.txt !var!
- 暂停命令:
pause