Batch file 用批处理文件替换update.ver中的文本

Batch file 用批处理文件替换update.ver中的文本,batch-file,Batch File,我写这个脚本是为了替换文件中的行,但是它需要很长时间。有没有办法加快速度 @echo off setlocal DisableDelayedExpansion set INTEXTFILE=update.ver set OUTTEXTFILE=update.txt set SEARCHTEXT=93.184.71.27 set REPLACETEXT=93.184.72.27 set OUTPUTLINE= for /f "tokens=1,* delims=¶" %%A in ( '"typ

我写这个脚本是为了替换文件中的行,但是它需要很长时间。有没有办法加快速度

@echo off
setlocal DisableDelayedExpansion
set INTEXTFILE=update.ver
set OUTTEXTFILE=update.txt
set SEARCHTEXT=93.184.71.27
set REPLACETEXT=93.184.72.27
set OUTPUTLINE=

for /f "tokens=1,* delims=¶" %%A in ( '"type %INTEXTFILE%"') do (
    SET string=%%A
    setlocal EnableDelayedExpansion
    SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!

    >> %OUTTEXTFILE% echo(!modified!
    endlocal
)
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%





@echo off
setlocal DisableDelayedExpansion
set INTEXTFILE=update.ver
set OUTTEXTFILE=update.txt
set SEARCHTEXT=91.228.167.26
set REPLACETEXT=91.227.167.26
set OUTPUTLINE=

for /f "tokens=1,* delims=¶" %%A in ( '"type %INTEXTFILE%"') do (
    SET string=%%A
    setlocal EnableDelayedExpansion
    SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!

    >> %OUTTEXTFILE% echo(!modified!
    endlocal
)
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%





@echo off
setlocal DisableDelayedExpansion
set INTEXTFILE=update.ver
set OUTTEXTFILE=update.txt
set SEARCHTEXT=91.228.166.13
set REPLACETEXT=91.227.166.13
set OUTPUTLINE=

for /f "tokens=1,* delims=¶" %%A in ( '"type %INTEXTFILE%"') do (
    SET string=%%A
    setlocal EnableDelayedExpansion
    SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!

    >> %OUTTEXTFILE% echo(!modified!
    endlocal
)
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%





@echo off
setlocal DisableDelayedExpansion
set INTEXTFILE=update.ver
set OUTTEXTFILE=update.txt
set SEARCHTEXT=91.228.166.15
set REPLACETEXT=91.227.166.15
set OUTPUTLINE=

for /f "tokens=1,* delims=¶" %%A in ( '"type %INTEXTFILE%"') do (
    SET string=%%A
    setlocal EnableDelayedExpansion
    SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!

    >> %OUTTEXTFILE% echo(!modified!
    endlocal
)
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%

请帮助我

您可以使用我的FindRepl.bat程序在文件的一次处理过程中实现多个字符串替换。例如:

@echo off
setlocal
set INTEXTFILE=update.ver
set OUTTEXTFILE=update.txt
set "SEARCHTEXT=93\.184\.71\.27|91\.228\.167\.26|91\.228\.166\.13|91\.228\.166\.15"
set "REPLACETEXT=93\.184\.72\.27|91\.227\.167\.26|91\.227\.166\.13|91\.227\.166\.15"
call FindRepl "%SEARCHTEXT%" /A "%REPLACETEXT%" < %INTEXTFILE% > %OUTTEXTFILE%
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
@echo关闭
setlocal
设置INTEXTFILE=update.ver
set-OUTTEXTFILE=update.txt
设置“SEARCHTEXT=93\.184\.71\.27 | 91\.228\.167\.26 | 91\.228\.166\.13 | 91\.228\.166\.15”
设置“REPLACETEXT=93\.184\.72\.27 | 91\.227\.167\.26 | 91\.227\.166\.13 | 91\.227\.166\.15”
调用FindRepl“%SEARCHTEXT%”/A“%REPLACETEXT%”<%INTEXTFILE%>%OUTTEXTFILE%
删除%INTEXTFILE%
重命名%OUTTEXTFILE%%INTEXTFILE%
FindRepl中的/A开关指示Search和Replace字符串都有几个由垂直条分隔的值


bat是一个批处理JScript混合程序,因此它比任何纯批处理解决方案运行得都快;使用它不需要任何额外的东西,只需从

下载即可。您可以使用我的FindRepl.bat程序在文件的一个处理过程中实现多个字符串替换。例如:

@echo off
setlocal
set INTEXTFILE=update.ver
set OUTTEXTFILE=update.txt
set "SEARCHTEXT=93\.184\.71\.27|91\.228\.167\.26|91\.228\.166\.13|91\.228\.166\.15"
set "REPLACETEXT=93\.184\.72\.27|91\.227\.167\.26|91\.227\.166\.13|91\.227\.166\.15"
call FindRepl "%SEARCHTEXT%" /A "%REPLACETEXT%" < %INTEXTFILE% > %OUTTEXTFILE%
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
@echo关闭
setlocal
设置INTEXTFILE=update.ver
set-OUTTEXTFILE=update.txt
设置“SEARCHTEXT=93\.184\.71\.27 | 91\.228\.167\.26 | 91\.228\.166\.13 | 91\.228\.166\.15”
设置“REPLACETEXT=93\.184\.72\.27 | 91\.227\.167\.26 | 91\.227\.166\.13 | 91\.227\.166\.15”
调用FindRepl“%SEARCHTEXT%”/A“%REPLACETEXT%”<%INTEXTFILE%>%OUTTEXTFILE%
删除%INTEXTFILE%
重命名%OUTTEXTFILE%%INTEXTFILE%
FindRepl中的/A开关指示Search和Replace字符串都有几个由垂直条分隔的值


bat是一个批处理JScript混合程序,因此它比任何纯批处理解决方案运行得都快;您不需要任何额外的东西就可以使用它,只需从下载它即可

您忘了告诉我们问题是什么!你忘了告诉我们问题出在哪里了@莫特扎霍达迪:哦,我错了!我忘了在每个点之前插入反斜杠!这在正则表达式中是必需的。。。请重新复制批处理程序above@MortezaKhodadadi:哦,我错了!我忘了在每个点之前插入反斜杠!这在正则表达式中是必需的。。。请重新复制上面的批处理程序