IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> bat脚本修改文件内容 -> 正文阅读

[开发测试]bat脚本修改文件内容

创建bat脚本

新建一个脚本文件 updateFileContent.bat

%关闭回显,设置延迟环境变量扩展%
@echo off&setlocal enabledelayedexpansion

rem 计算调用的参数个数
for %%a in (%*) do set /a num+=1
if defined num (echo 调用了 %num% 个参数) else echo 没有调用任何参数

set fileName=%1
set oldText=%2
set newText=%3

rem 参数个数小于3个提示用户
if num lss 3 (
	goto :errArgsTip
) 

rem 参数个数大于等于4个设置featureText变量
if num geq 4 (
	set featureText=%4
)

echo fileName=%fileName% oldText=%oldText% newText=%newText% 

if defined featureText (echo featureText=%featureText%)

for /f "delims=" %%a in ('findstr /n .* %fileName%') do (
	set "str=%%a"
	rem 替换内容
	if defined featureText (
		rem 查找每行字符串是否包含指定的特征字符,只对包含特征字符的行替换文本
		echo !str!| findstr %featureText% >nul && (
			set "str=!str:%oldText%=%newText%!"
		)
	) else (
		set "str=!str:%oldText%=%newText%!"
	)
	rem 将添加了行号的文本写入临时文件
	echo !str! >>tmp.txt
)
for /f "tokens=1* delims=:" %%i in ('type tmp.txt') do (
	rem 按 : 分割每行字符串
	set "str=%%j"
	if "!str!"==" " (
		rem 写入源文件里的空行
		call echo.>>new_A.txt
	) else (
		rem 将字符串写入文本,每行会多一个空格,使用字符串的截取功能去掉末尾的一个空格
		echo !str:~0,-1!>>new_A.txt
	)
)

rem 删除临时文件并将修改后的文件修改为源文件
del tmp.txt&move new_A.txt %fileName%

goto :end

:errArgsTip
	echo --------------------------------------------------------------------------------
	echo -- 请输入正确的参数:fileName oldText newText [featureText]
	echo -- fileName:待修改文件的文件名
	echo -- oldText:待修改的文本
	echo -- newText:替换后的文本
	echo -- featureText:待修改文本所在行的特性字符,用于定位修改文本所在的行,可选参数
	echo --------------------------------------------------------------------------------
	
:end
	rem 执行完脚本要将num变量取消,以免影响下次执行
	set num=

测试

准备测试文件 test.txt

你好: china

test=hello

year=hello

测试用例一

执行指令:

D:\bat>updateFileContent.bat test.txt hello word
调用了 3 个参数
fileName=test.txt oldText=hello newText=word
移动了         1 个文件。
D:\bat>

执行结果:

你好: china

test=word

year=word

测试用例二

执行指令:

D:\bat>updateFileContent.bat test.txt hello word year
调用了 4 个参数
fileName=test.txt oldText=hello newText=word
featureText=year
移动了         1 个文件。
D:\bat>

执行结果:

你好: china

test=hello

year=word

参考文献:

批处理(bat)脚本语言—SET命令和变量使用
bat文件修改或替换文件内容

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:44:27  更:2021-08-11 12:45:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:42:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码