请教一个批处理代码,一个文件下有多个的txt文本,文本中大致格式如下
1122960100={
name="纪"
dynasty=1122960000#逄
culture="han"
religion="shiite"
intrigue=16
trait=patient
160.1.1={
birth="160.1.1"
}
176.1.1={
name="纪(元图)"
}
202.8.1={
death="202.8.1"
}
}
需要实现的是将里面的日期中的年份全部加上2697,即换成皇帝纪元,请问怎样批次处理,小白,懵逼。- @echo off
- rem 进入批处理文件所在的路径
- cd D:\111
- echo ***** 替换时间中的年份+2567 *****
- rem 定义要替换的新旧字符串
- rem 定义变量修改本地化延期
- setlocal enabledelayedexpansion
- rem 循环取出要处理的文件名
- for /f "tokens=*" %%i in ('dir D:\111\*.txt /b') do (
- set "var=%%i"
- if not !var!.==. (
- rem 单个文件一行行处理,将旧字段替换成新字段
- for /f "tokens=*" %%j in (!var!) do (
- #时间正则:
- echo %%j^|findstr /i "[-]{0,1}[0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3}" >nul 2>nul
- if !errorlevel! equ 0 (
- set /a m=j+2657
- rem 将处理后的每一行记录追加到temp.txt文件中
- echo !m!>>temp.txt
- )
- )
- rem 在单个文件的每一行经过替换操作后,将处理后的文本从temp.txt临时文件剪贴到目标处理文件中(剪贴后临时文件会自动删除)
- move temp.txt !var!
- )
- )
- pause
复制代码 我这纯粹是搜一些网上的用法东拼西凑 不行。。。
理想实现的是:
将文件下的所有txt文本中的年份统一改成皇帝纪元的算法,最好还可以备份原txt,更名为XX_back.txt
,大佬们,可以帮帮小白不? 拜上 |