bat批处理提取txt关键词所在行并输出文件

2025-03-10 11:32:55
推荐回答(3个)
回答1:

find和findstr是外部命令,频繁使用外部命令效率太低。 @echo offsetlocal enabledelayedexpansionset n=0for /f "delims=" %%i in (b.txt) do ( set /a n+=1 set b!n!=%%i)(for /f "delims=" %%i in (a.txt) do ( set e=0 for /l %%j in (1 1 %n%) do if "%%i"=="!b%%j!" set e=1 if !e!==1 (echo %%i) else (set a=%%i&echo !a:~,8!XXX!a:~11!)))>c... find和findstr是外部命令,频繁使用外部命令效率太低。
@echo offsetlocal enabledelayedexpansionset n=0for /f "delims=" %%i in (b.txt) do ( set /a n+=1 set b!n!=%%i)(for /f "delims=" %%i in (a.txt) do ( set e=0 for /l %%j in (1 1 %n%) do if "%%i"=="!b%%j!" set e=1 if !e!==1 (echo %%i) else (set a=%%i&echo !a:~,8!XXX!a:~11!)))>c.txtpause

回答2:


find和findstr是外部命令,频繁使用外部命令效率太低。

@echo off
setlocal enabledelayedexpansion
set n=0
for /f "delims=" %%i in (b.txt) do (
  set /a n+=1
  set b!n!=%%i
)
(for /f "delims=" %%i in (a.txt) do (
  set e=0
  for /l %%j in (1 1 %n%) do if "%%i"=="!b%%j!" set e=1
  if !e!==1 (echo %%i) else (set a=%%i&echo !a:~,8!XXX!a:~11!)
))>c.txt
pause



回答3:

这种复杂的业务需求为什么要用批处理,不用C#,perl,python之类的语言?