gpt4 book ai didi

batch-file - 批处理脚本可在一分钟内查找和替换文本文件中的字符串,文件最大为 12 MB

转载 作者:行者123 更新时间:2023-12-03 10:21:36 24 4
gpt4 key购买 nike

我编写了一个批处理脚本来替换文本文件中的字符串。

以下是脚本。

@echo off &setlocal
set "search=%1"
set "replace=%2"
set "textfile=Input.txt"
set "newfile=Output.txt"
(for /f "delims=" %%i in (%textfile%) do (
set "line=%%i"
setlocal enabledelayedexpansion
set "line=!line:%search%=%replace%!"
echo(!line!
endlocal
))>"%newfile%"
del %textfile%
rename %newfile% %textfile%

但是对于 12MB 的文件,它需要接近 7 分钟。我希望不到一分钟。我们可以使用 吗?查找或 findstr 命令来减少花费的时间?

最佳答案

试一试:

@echo off
setlocal

call :FindReplace "findstr" "replacestr" input.txt

exit /b

:FindReplace <findstr> <replstr> <file>
set tmp="%temp%\tmp.txt"
If not exist %temp%\_.vbs call :MakeReplace
for /f "tokens=*" %%a in ('dir "%3" /s /b /a-d /on') do (
for /f "usebackq" %%b in (`Findstr /mic:"%~1" "%%a"`) do (
echo(&Echo Replacing "%~1" with "%~2" in file %%~nxa
<%%a cscript //nologo %temp%\_.vbs "%~1" "%~2">%tmp%
if exist %tmp% move /Y %tmp% "%%~dpnxa">nul
)
)
del %temp%\_.vbs
exit /b

:MakeReplace
>%temp%\_.vbs echo with Wscript
>>%temp%\_.vbs echo set args=.arguments
>>%temp%\_.vbs echo .StdOut.Write _
>>%temp%\_.vbs echo Replace(.StdIn.ReadAll,args(0),args(1),1,-1,1)
>>%temp%\_.vbs echo end with

关于batch-file - 批处理脚本可在一分钟内查找和替换文本文件中的字符串,文件最大为 12 MB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23087463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com