Подсчёт строк, содержащих домены из "musor"
Здравствуйте. Прошу помочь. Мне нужно посчитать количество строк, содержащих домены из заданного списка и вывести их кол-во в отдельный файл:
PHP код:
@echo off
call :domain set musor
:start
set base="C:\Users\User\Desktop\Base.txt"
goto musor
goto start
:musor
FINDSTR /L /I /P /OFF "%musor%" %base% >> REM Нужно прибавить 1 и в конце записать количество в файл
cls
:domain
SET musor=@mail.ru @gmail.com REM и так далее
|
Цитата:
Цитата Asdshka
посчитать количество строк, »
|
Где? В файле? Тогда предоставьте образец файла, упакованного в архив.
Цитата:
Цитата Asdshka
содержащих домены из заданного списка »
|
Где будет список? Если в файле — требование то же, что и выше. Если нет — опять же предоставьте образец списка текстом.
|
Iska, категорически согласен, опять какой-то сферический конь в вакууме.
Код:
findstr /l /i /p /g:файл_со_списком_доменов.txt /f:файл_со_списком_строк_в_которых_будет_производиться_поиск.txt | find /c /v "" >> файл_в_который_записывается_результат.txt
|
Посчитать количество строк в файле:
PHP код:
set base="C:\Users\User\Desktop\Base.txt"
Которые содержат домены из списка:
PHP код:
SET musor=@mail.ru @gmail.com
И конечный результат вывести в отдельный файл
Строки файла в котором нужно искать имеют формат:
PHP код:
123@mail.ru:asd123 123@gmail.ru:asd123 123@email.ru:asd123
Попробовал данный вариант - он всё время выдаёт 0:
PHP код:
findstr /l /i /p /g:файл_со_списком_доменов.txt /f:файл_со_списком_строк_в_которых_будет_производиться_поиск.txt | find /c /v "" >> файл_в_который_записывается_результат.txt
Кстати, я немного ошибся:
PHP код:
FINDSTR /L /I /P /OFF /V "%musor%" %base%
Буду премного благодарен за помощь
|
Цитата:
Цитата Asdshka
Строки файла в котором нужно искать имеют формат: »
|
Asdshka, Вы читать умеете? Упакуйте файл в архив и приложите к сообщению. Аналогично с:
И не надо изобретать код, Вам его уже дали.
Цитата:
Цитата Asdshka
Попробовал данный вариант - он всё время выдаёт 0: »
|
И как именно Вы пробовали?
|
В данной базе нужно посчитать количество строк с "мусорными доменами". Мусорные домены должны быть не в отдельном файле, а прописаны в BAT-файле
http://rgho.st/private/7CKmJw2PJ/0a9...0b3d2e355bc830
Цитата:
Цитата Iska
И как именно Вы пробовали? »
|
PHP код:
findstr /l /i /p /d:1.txt /d:2.txt | find /c /v "" >> 3.txt findstr /l /i /p /v /d:1.txt /d:2.txt | find /c /v "" >> 3.txt
|
Цитата:
Цитата Asdshka
а прописаны в BAT-файле »
|
Ну, если Вы настаиваете…
Скрытый текст
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFile=%~1
set sExcludeList=@mail.ru @gmail.com @tut.by
call :GetTemporaryName
if defined sSourceFile (
if exist "%sSourceFile%" (
>"%TemporaryName%" (for %%i in (%sExcludeList%) do echo %%i)
findstr.exe /l /i /g:"%TemporaryName%" "%sSourceFile%" | >"Result.txt" find.exe /c /v ""
del /f /q "%TemporaryName%"
) else (
echo Can't find source file [%sSourceFile%].
exit /b 2
)
) else (
echo Usage: %~0 ^<Source file^>
exit /b 1
)
endlocal
exit /b 0
rem ==========================================================================
rem ==========================================================================
rem Функция GetTemporaryName()
rem
rem Серый форум / CMD/BAT: генерация пути для временного файла или папки
rem (http://forum.script-coding.com/viewtopic.php?id=6259)
rem ==========================================================================
:GetTemporaryName
setlocal enableextensions enabledelayedexpansion
:NextName
set sTempName=%temp%\temp%random%.tmp
if exist "%sTempName%" goto :NextName
set sProcName=%~0
endlocal & set %sProcName:~4%=%sTempName%
exit /b 0
rem ==========================================================================
Путь к исходному файлу задаётся параметром пакетного файла (также можно перетащить исходный файл на пакетный файл в Проводнике).
|
DJ Mogarych |
10-01-2018 16:31 2790335 |
Не знаю, все ли требования выполнил, но основа на Powershell выглядит так:
Код:
$musor=@(
"@mail.ru"
"@gmail.com"
)
$s=Get-Content .\Base.txt | Select-String -Pattern $musor -SimpleMatch
$s | Select LineNumber,Line,Pattern | ft -AutoSize -Wrap
$s.Count
Можно чуть допилить.
|
Время: 18:46.
© OSzone.net 2001-