有个需求,需要改动指定文件夹里面的内容,可以直接用BAT文件实现,具体代码如下(本代码功能是修改bat文件文件夹里面.dat文件的LicenseId的后面的内容)
@ECHO OFF
REM chcp 65001
setlocal EnableDelayedExpansion
set /p lid=请输入新的激活码:
echo "等待生成新的证书!"
for /r %%a in (*.dat) do (
rem echo %%a
setlocal EnableDelayedExpansion
set "newfile=%%a.new"
rem echo "!newfile!"
del "!newfile!"
for /f "delims=:" %%b in ('type "%%a"^|findstr /NI /C:"LicenseId"') do (
rem 找出哪一行有LicenseId
rem echo %%b
set "line=%%b"
rem echo !line!
for /f "tokens=1* delims=:" %%c in ('findstr /N .* "%%a"') do (
rem echo %%c
rem echo %%d
set "linestr=%%d"
rem 根据上面找到的行号,替换本行的内容
if "%%c"=="%%b" set "linestr= LicenseId = !lid!"
echo.!linestr! >> "!newfile!"
)
)
Rem del "%%a"
move /y "!newfile!" "%%a"
)
pause