我需要使用批处理脚本替换文本文件中的字符串。字符串是:
these are the url's http://somename http://somename http://somename:1010
现在在上面一行我需要用someone
替换anything
,以便输出
these are the url's http://anything http://anything http://anything:1010
但是包含以下字符串的文本文件存在于服务器
中 these are the url's http://somename http://somename http://somename:1010
我不知道字符串someone
!目标是http://
之后出现的任何内容,它需要替换为新字符串(anything
),直到它找到同一行中的另一个http://
。
到目前为止,我能够编写如下的脚本,但是无效。
setlocal ENABLEDELAYEDEXPANSION
@echo off
@set INFILEPATH=E:\PathofTxtFile\
@set INTEXTFILE=Filetomodify.txt
@set OUTTEXTFILE="E:\PathofTxtFile\Filetomodify.txt"
@set OLDTEXT=http://*
@set OUTPUTLINE=
@set NEWTEXT=anything
echo %NEWTEXT%
@IF EXIST "%OUTTEXTFILE%" (
GOTO MODIFYFILE
) ELSE (
GOTO COPYFILE
)
:MODIFYFILE
for /f "tokens=1,* delims=¶" %%A in ( '"findstr /n ^^ %INFILEPATH%%INTEXTFILE%"') do (
SET string=%%A
for /f "delims=: tokens=1,*" %%a in ("!string!") do set "string=%%b"
if "!string!" == "" (
echo.>>%OUTTEXTFILE%
) else (
SET modified=!string:%OLDTEXT%=http://%NEWTEXT%!
echo !modified! >> %OUTTEXTFILE%
)
)
del %INFILEPATH%%INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
:COPYFILE
@xcopy "C:\TempPath\FileToModify.txt" "INFILEPATH" /Q /Y
此脚本不会更改文本文件中的任何行。请任何人都可以建议我如何达到上述标准。 提前谢谢。