Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Подсчёт строк, содержащих домены из "musor"

Ответить
Настройки темы
CMD/BAT - Подсчёт строк, содержащих домены из "musor"

Новый участник


Сообщения: 27
Благодарности: 2

Профиль | Отправить PM | Цитировать


Здравствуйте. Прошу помочь. Мне нужно посчитать количество строк, содержащих домены из заданного списка и вывести их кол-во в отдельный файл:
PHP код: Выделить весь код

@echo off

 
call 
:domain set musor
 
:start
set base
="C:\Users\User\Desktop\Base.txt"
goto musor
goto start
 
:musor
FINDSTR 
////OFF "%musor%" %base% >> REM Нужно прибавить 1 и в конце записать количество в файл
cls
 
:domain
SET musor
=@mail.ru @gmail.com REM и так далее 


Отправлено: 13:45, 03-01-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Asdshka:
посчитать количество строк, »
Где? В файле? Тогда предоставьте образец файла, упакованного в архив.

Цитата Asdshka:
содержащих домены из заданного списка »
Где будет список? Если в файле — требование то же, что и выше. Если нет — опять же предоставьте образец списка текстом.

Отправлено: 14:33, 03-01-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Iska, категорически согласен, опять какой-то сферический конь в вакууме.
Код: Выделить весь код
findstr /l /i /p /g:файл_со_списком_доменов.txt /f:файл_со_списком_строк_в_которых_будет_производиться_поиск.txt | find /c /v "" >> файл_в_который_записывается_результат.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:54, 03-01-2018 | #3


Новый участник


Сообщения: 27
Благодарности: 2

Профиль | Отправить PM | Цитировать


Посчитать количество строк в файле:
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 ////g:файл_со_списком_доменов.txt /f:файл_со_списком_строк_в_которых_будет_производиться_поиск.txt find //"" >> файл_в_который_записывается_результат.txt 



Кстати, я немного ошибся:
PHP код: Выделить весь код

FINDSTR ////OFF /"%musor%" %base

Буду премного благодарен за помощь

Отправлено: 18:16, 03-01-2018 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Asdshka:
Строки файла в котором нужно искать имеют формат: »
Asdshka, Вы читать умеете? Упакуйте файл в архив и приложите к сообщению. Аналогично с:
Цитата Asdshka:
@mail.ru @gmail.com »
И не надо изобретать код, Вам его уже дали.

Цитата Asdshka:
Попробовал данный вариант - он всё время выдаёт 0: »
И как именно Вы пробовали?

Отправлено: 18:29, 03-01-2018 | #5


Новый участник


Сообщения: 27
Благодарности: 2

Профиль | Отправить PM | Цитировать


В данной базе нужно посчитать количество строк с "мусорными доменами". Мусорные домены должны быть не в отдельном файле, а прописаны в BAT-файле

http://rgho.st/private/7CKmJw2PJ/0a9...0b3d2e355bc830

Цитата Iska:
И как именно Вы пробовали? »
PHP код: Выделить весь код

findstr ////d:1.txt /d:2.txt find //"" >> 3.txt 
findstr 
/////d:1.txt /d:2.txt find //"" >> 3.txt 


Отправлено: 18:34, 03-01-2018 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата 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 ==========================================================================

Путь к исходному файлу задаётся параметром пакетного файла (также можно перетащить исходный файл на пакетный файл в Проводнике).

Отправлено: 19:48, 03-01-2018 | #7


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6680
Благодарности: 1560

Профиль | Отправить PM | Цитировать


Не знаю, все ли требования выполнил, но основа на 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
Можно чуть допилить.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 10-01-2018 в 16:50.


Отправлено: 16:31, 10-01-2018 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Подсчёт строк, содержащих домены из "musor"

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Перенос "комментариев" из определенных строк файла - в другой файл. Haart Скриптовые языки администрирования Windows 3 01-02-2015 18:34
CMD/BAT - [решено] Нужно создать "батник" - вырезать из "2.txt" первых n строк и вставить их в "1.txt" temphard Скриптовые языки администрирования Windows 12 10-01-2014 18:36
[решено] Пропал значок "Подключение по локальной сети" из "Сетевых подключений" Autification Microsoft Windows NT/2000/2003 1 27-12-2012 10:19
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29
Winamp 2.5,"Непонятный глюк" или "Я и компьютер-кто из нас более убогий?" MiGin Хочу все знать 4 23-05-2006 22:09




 
Переход