创建bat脚本
新建一个脚本文件 updateFileContent.bat
%关闭回显,设置延迟环境变量扩展%
@echo off&setlocal enabledelayedexpansion
for %%a in (%*) do set /a num+=1
if defined num (echo 调用了 %num% 个参数) else echo 没有调用任何参数
set fileName=%1
set oldText=%2
set newText=%3
if num lss 3 (
goto :errArgsTip
)
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 (
set "str=%%a"
if defined featureText (
echo
set "str=!str:%oldText%=%newText%!"
)
) else (
set "str=!str:%oldText%=%newText%!"
)
echo
)
for /f "tokens=1* delims=:" %%i in (
set "str=%%j"
if "!str!"==" " (
call echo.>>new_A.txt
) else (
echo
)
)
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
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文件修改或替换文件内容
|