
批處理怎樣將txt文本中時(shí)間的年份統(tǒng)一加上一個(gè)數(shù)字返回請(qǐng)教一個(gè)批處理代碼,一個(gè)文件下有多個(gè)的txt文本,文本中大致格式如下1122960100={name=紀(jì)dynasty=1122960000#逄culture=hanreligion=shiiteintrigue=16trait=patient160.1.1={birth=160.1.1}176.1.1={name=紀(jì)(元圖)}202.8.1={death=202.8.1}}需要實(shí)現(xiàn)的是將里面的日期中的年份全部加上2697,即換成皇帝紀(jì)元,請(qǐng)問怎樣批次處理,小白,懵逼。
我這純粹是搜一些網(wǎng)上的用法東拼西湊 不行。。。理想實(shí)現(xiàn)的是:將文件下的所有txt文本中的年份統(tǒng)一改成皇帝紀(jì)元的算法,最好還可以備份原txt,更名為XX_back.txt,大佬們,可以幫幫小白不? 拜上nclick="copycode($('code0'));">復(fù)制代碼
- @echo off
- rem 進(jìn)入批處理文件所在的路徑
- cd D:111
- echo ***** 替換時(shí)間中的年份+2567 *****
- rem 定義要替換的新舊字符串
- rem 定義變量修改本地化延期
- setlocal enabledelayedexpansion
- rem 循環(huán)取出要處理的文件名
- for /f tokens=* %%i in ('dir D:111*.txt /b') do (
- set var=%%i
- if not !var!.==. (
- rem 單個(gè)文件一行行處理,將舊字段替換成新字段
- for /f tokens=* %%j in (!var!) do (
- #時(shí)間正則:
- 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 在單個(gè)文件的每一行經(jīng)過替換操作后,將處理后的文本從temp.txt臨時(shí)文件剪貼到目標(biāo)處理文件中(剪貼后臨時(shí)文件會(huì)自動(dòng)刪除)
- move temp.txt !var!
- )
- )
- pause

