我正在尝试遍历一个包含很少名称的文件,并在另一个文件中搜索两个模式并回显一些语句。
就像我有两个文件:
1.Installers.txt 2.Progress.txt
Installers.txt
abc.jar
def.jar
tef.jar
....
....
Progress.txt
abc.jar deployment started
abc.jar deployed successfully
def.jar deployment started
所以我的要求是一次读取一行的Installers.txt文件,并搜索2个模式“abc.jar deployment started”和“abc.jar已成功部署”并报告成功,否则两个模式还没有被发现仍然在进行中。
我曾尝试过写下面但是在做模式的时候很多事情都失败了,逻辑看起来并不好看。有人可以帮忙。
for /F "usebackq delims=" %%a in ("Installer.txt") do (
set /A i+=1
call echo installing %%i%% : %%a
:NOTVALID
findstr /I "%%k\ in\ progress" %1%\progress.txt
If errorlevel 1 (
echo "installation still in progress.."
PING 127.0.0.1 -n 1 >NUL 2>&1 || PING ::1 -n 1 >NUL 2>&1
goto NOTVALID
) else (
set /A i+=1
echo "installation completed.."
call set array[%%i%%]=%%a
call set n=%%i%%
)
答案 0 :(得分:0)
请尝试以下符合您要求的代码:
cls
@echo off
for /f %%g in (Installers.txt) do type Progress.txt|findstr "%%g" || echo %%g is Yet to start , still in progress
上面的代码将从安装程序中读取一行,然后在文件Progress.txt中搜索该字符串,然后在找到它时打印输出。