Используя ниже, я смог подсчитать общее количество вхождений одного слова и получить результат, как показано ниже.Использование findstr для многострочного И поиска
@echo off
set "word=Windows"
set file=log.txt
set cnt=0
for /f ^"eol^=^
delims^=^" %%a in ('"findstr /i "/c:%word%" %file%"') do set "ln=%%a"&call :countWord
echo Server_Type Total_Users >result.txt
echo %word% %cnt% >>result.txt
exit /b
:countWord
setlocal enableDelayedExpansion
:loop
if defined ln (
set "ln2=!ln:*%word%=!"
if "!ln2!" neq "!ln!" (
set "ln=!ln2!"
set /a "cnt+=1"
goto :loop
)
)
endlocal & set cnt=%cnt%
exit /b
result.txt
Server_Type Total_Users
Windows 24
теперь я хочу, чтобы добавить 6 новых слов, как Linux, MacOS, Andriod, Unix и т.д. .... искать в том же файле журнала и получить результат в том же формате.
, но не получить, как добиться этого, используя FINDSTR и возможно ли это с учетом ограниченной возможности RegExp Findstr? любое предложение, пожалуйста?
Привет, Аачини, я проверил ваш код. Если у вас есть «Unix_foo» или «Windowstoto», на которые они рассчитывают. – SachaDee
спасибо Aacini ..! это именно то, что я хочу ..! – Sunny
@ sachadee..активно я хотел посчитать слова Unix, Windows..не безразлично, как они входят в журнал ... так как вы также согласитесь, что 'Unix_foo' или' Windowstoto' отображают появление слов 'Unix' и' У Windows нет причин игнорировать их. :) – Sunny