我想寫一個批處理文件,它將搜索我的文本文件中的字符串並將其替換。該字符串將是一些數字,永遠不會改變,隨後是代表日期的8個數字。我希望能夠用當前日期替換該日期,但我不知道當前字符串中的日期是什麼,所以我只能通過搜索那些前4個不變的字符來搜索字符串。當我只知道前幾個字符時替換一個字符串
例如我的文本文件可能在這幾行:123419072015(1234),我想123420072015
更換如何更換8個字符,不知道它們是什麼,通過搜索前4該字符串的字符?
我試圖通過搜索找出一些東西,並提出了這個,只是爲了意識到這種方法是如何有缺陷的,我想要做的。不用說我不知道我在做什麼。 這將用今天的日期替換每一行,留下前4個字符。
set Today=%date:~10,4%%date:~7,2%%date:~4,2%
@echo off
setlocal enabledelayedexpansion
set INTEXTFILE=test_in.txt
set OUTTEXTFILE=test_out.txt
set SEARCHTEXT=1234
set REPLACETEXT=%Today%
SET _startchar=0
SET _length=4
set OUTPUTLINE=
for /f "tokens=1,* delims=¶" %%A in ('"type %INTEXTFILE%"') do (
SET string=%%A
CALL SET modified=%%string:~%_startchar%,%_length%%%
echo !modified!%Today% >> %OUTTEXTFILE%
)
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
當然有一個簡單的解決方案呢? 我真的很努力尋找任何東西只是通過搜索。 任何幫助將是偉大的!
將'\ b1234 \ d {8} \ b'替換爲'1234' + cur_date –
您是否使用Windows .BAT/CMD文件卡住了? – schtever
另外,在您的示例中,您將顯示一些括號,最後劃分要刪除的數據。這總是如此嗎? – schtever