我想写一个批处理文件,它将搜索我的文本文件中的字符串并将其替换。该字符串将是一些数字,永远不会改变,随后是代表日期的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