Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
9 / 8 / 5
Регистрация: 13.05.2015
Сообщений: 244
1

Искать в файле из директории "base" строки, которые содержат строку из "list.ini" и отсеивать их

30.12.2017, 16:28. Показов 2355. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Имеется данный Batch:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@ECHO off
SETLOCAL EnableExtensions EnableDelayedExpansion
 
SET base=Base
SET settings=list.ini
SET result=result.txt
 
FOR /F %%D IN ('DIR /B "%base%"') DO FOR /F %%F IN (%settings%) DO FINDSTR /L /I /P /OFF /V "%%F" "%base%\%%D" >> %result%
 
ECHO Done!
cls
По задумке он должен искать в файле из директории "base" строки, которые содержат строку из "list.ini" и отсеивать их, а остальные записать в result.txt(Нужно отсеять мусорные домены из файла). Но он делает это действие многократно. Помогите пожалуйста исправить данную проблему или может предложите вариант лучше? Без всяких папок, например база будет лежать рядом с батиком и ini-файлом

Добавлено через 1 минуту
Только есть одно условие - не нужно ничего вводить с клавиатуры, то есть батник должен срабатывать автоматически при запуске
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2017, 16:28
Ответы с готовыми решениями:

Отбирать строку/строки в таблице BASE, которые входят в указанную строку
Есть таблица BASE с полем марка авто, как правило от одного до трех слов. 1 =ВАЗ 2 = МАЗ 3 =...

В указанной директории найти обычные файлы которые содержат одинаковые по информации строки
Здравствуйте. Имеется задание написать скрипт на С. Задание такое: В указанной директории найти...

Функция принимает массив словарей и строку. Выводит только те словари, которые содержат эту строку
Фyнкция принимает массив словарей и строкy. Выводит только те словари, которые содержат этy строкy....

Как искать и заменять строки в файле
Существует текстовый файл в виде: фамилия имя группа пароль результат 1 результат 2...

Скопировать из файла F1 в файл F2 все строки, которые не содержат цифры. Подсчитать количество строк, которые начи
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию Выполнить...

9
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
30.12.2017, 16:39 2
примерно
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
 
set "fullpath=D:\temp\source.txt"
set "result=D:\temp\result.txt"
 
type "%fullpath%" | find /v /i "list.ini" >> %result%
 
exit /b
1
9 / 8 / 5
Регистрация: 13.05.2015
Сообщений: 244
30.12.2017, 16:47  [ТС] 3
Цитата Сообщение от vavun Посмотреть сообщение
примерно
Благодарю, сейчас попробую

Добавлено через 2 минуты
Цитата Сообщение от vavun Посмотреть сообщение
примерно
А если мне нужно не указывать путь, чтобы работало с файлами директории?
0
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
30.12.2017, 16:54 4
Цитата Сообщение от Mr_Asdshka Посмотреть сообщение
А если мне нужно не указывать путь, чтобы работало с файлами директории?
не указывайте путь.

Если нужно, что бы работало со ВСЕМИ файлами в текущей директории, то примерно так
Windows Batch file
1
2
3
4
5
6
7
@echo off
 
set "result=D:\Desktop\result.txt"
 
for %%a in ("%~dp0*") do type "%%a" | find /v /i "dism" >> %result%
 
exit /b
Если я правильно понял то, что надо сделать
1
9 / 8 / 5
Регистрация: 13.05.2015
Сообщений: 244
30.12.2017, 16:57  [ТС] 5
Цитата Сообщение от vavun Посмотреть сообщение
не указывайте путь.
Если нужно, что бы работало со ВСЕМИ файлами в текущей директории, то примерно так
Понял. Только почему-то не срабатывает. Буду пробовать
0
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
30.12.2017, 17:01 6
Цитата Сообщение от Mr_Asdshka Посмотреть сообщение
Понял. Только почему-то не срабатывает. Буду пробовать
С самого начала и подробно опишите то, что нужно сделать.
0
9 / 8 / 5
Регистрация: 13.05.2015
Сообщений: 244
30.12.2017, 17:02  [ТС] 7
Вот этот работает на ура:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
call :domain set musor
call :domain set myrq
call :domain set usa
call :domain set musormyrqusa
call :domain set france
call :domain set germany
call :domain set poland
 
 
:start
echo 1. Отсеять Мусор
echo 2. Отсеять MYRQ
echo 3. Отсеять США
echo 4. Отсеять Мусор, MYRQ, США
echo 5. Отсеять Францию
echo 6. Отсеять Германию
echo 7. Отсеять Польшу
 
 
set /P num=Выберите, что хотите отсортировать (цифру): 
set /P base=Загрузи базу (перетащи в окно): & cls
if %num%==1 cls & goto musor
if %num%==2 cls & goto myrq
if %num%==3 cls & goto usa
if %num%==4 cls & goto musormyrqusa
if %num%==5 cls & goto france
if %num%==6 cls & goto germany
if %num%==7 cls & goto poland
goto start
 
:musor
FINDSTR /L /I /P /OFF "%musor%" %base% >> %base%_Musor.txt
FINDSTR /L /I /P /OFF /V "%musor%" %base% >> %base%_Cleaned.txt
echo Мусор отсеян.
pause
cls & goto start
 
:myrq
FINDSTR /L /I /P /OFF "%myrq%" %base% >> %base%_MYRQ.txt
FINDSTR /L /I /P /OFF /V "%myrq%" %base% >> %base%_ZABUGOR.txt
echo MYRQ отсеян.
pause
cls & goto start
 
:usa
FINDSTR /L /I /P /OFF "%usa%" %base% >> %base%_USA.txt
FINDSTR /L /I /P /OFF /V "%usa%" %base% >> %base%_Other.txt
echo США отсеяны.
pause
cls & goto start
 
:musormyrqusa
FINDSTR /L /I /P /OFF "%musor%" %base% >> %base%_Musor.txt
FINDSTR /L /I /P /OFF "%myrq%" %base% >> %base%_MYRQ.txt
FINDSTR /L /I /P /OFF "%usa%" %base% >> %base%_USA.txt
FINDSTR /L /I /P /OFF /V "%myrq% %musor% %usa%" %base% >> %base%_ZABUGOR bez USA.txt
echo Все домены отсортированы.
pause
cls & goto start
 
:france 
FINDSTR /L /I /P /OFF "%france%" %base% >> %base%_France.txt
FINDSTR /L /I /P /OFF /V "%france%" %base% >> %base%_Other.txt
echo Франция отсеяна.
pause
cls & goto start
 
:germany
FINDSTR /L /I /P /OFF "%germany%" %base% >> %base%_Germany.txt
FINDSTR /L /I /P /OFF /V "%germany%" %base% >> %base%_Other.txt
echo Германия отсеяна.
pause
cls & goto start
 
:poland
FINDSTR /L /I /P /OFF "%poland%" %base% >> %base%_Poland.txt
FINDSTR /L /I /P /OFF /V "%poland%" %base% >> %base%_Other.txt
echo Польша отсеяна.
pause
cls & goto start
 
 
 
:domain
SET musor=@0511.cn @126.com @139.com @163.com @189.cn @21cn.com @acsalaska.net @addicon.com.cn @alaska.net @allfarm.cn @altern.org @bestfarmshop.cn @biblicalsteel.cn @carpenterbible.cn @chevrolettracker.cn @cynthiablood.cn @daum.net @enet.com.cn @evergreenprograms.cn @failedflash.cn @foxmail.com @gmail. @googlemail. @goosesites.cn @gsta.com @hanmail.net @happenedwatch.cn @headquarterslegal.cn @hotmail. @joycebrown.cn @korea.com @layersupplies.cn @leadsrecords.cn @librariesdirectory.cn @live. @mail.nbptt.zj.cn @mailzj.cn @mappinglanguage.cn @msnzone.cn @nate.com @naver.com @outlook. @penciltoyota.cn @protectivedodge.cn @qq.com @requiredgeneral.cn @sina.cn @sina.com @sohu.com @thegreatestfarm.cn @vip.qq.com @vitalbiography.cn @vocabularyemployment.cn @w.cn @wz.zj.cn @yourlancia.cn @zjip.com @msn. @fastmail.cn
 
SET myrq=@5ballov.ru @aeterna.ru @autorambler.ru @bk.ru @borda.ru @fotoplenka.ru @fromru.com @front.ru @hotbox.ru @inbox.ru @krovatka.su @land.ru @lenta.ru @list.ru @mail.ru @mail.ua @mail15.com @mail333.com @memori.ru @myrambler.ru @narod.ru @newmail.ru @nightmail.ru @nm.ru @photofile.ru @pisem.net @pochta.com @pochta.ru @pochtamt.ru @pop3.ru @qip.ru @r0.ru @rambler.ru @rbcmail.ru @ro.ru @smtp.ru @ya.ru @ya.ua @yandex.by @yandex.com @yandex.kz @yandex.ru @yandex.ua @ziza.ru @bigmir.net @box.ua @email.ua @e-mail.ua @ex.ua @i.ua @index.ua @inet.ua @meta.ua @online.ua @search.ua @ua.fm @ukr.net @e-mail.ru @vipmail.ru @fax.ru @aport.ru @omen.ru @imail.ru @au.ru @atrus.ru @aport2000.ru @fxmail.ru @email.ru @uralweb.ru @e1.ru @ngs.ru @li.ru @liveinternet.ru @km.ru @freemail.ru @bossmail.ru @girlmail.ru @boymail.ru @safebox.ru @megabox.ru @rol.ru @rol.uz @online.ru @glasnet.ru @glas.net @beelinewifi.ru @nxt.ru @dezigner.ru @email.su @epage.ru @hu2.ru @mail2k.ru @nextmail.ru @programist.ru @student.su @xaker.ru @k66.ru @bmail.ru @post.ru @74.ru @59.ru @29.ru @14.ru @116.ru @93.ru @26.ru @35.ru @42.ru @43.ru @45.ru @48.ru @51.ru @53.ru @56.ru @60.ru @61.ru @62.ru @161.ru @63.ru @164.ru @68.ru @70.ru @71.ru @72.ru @74.ru @75.ru @76.ru @178.ru @86.ru @89.ru @vtomske.ru @nsk.ru @1nsk.ru @datagrad.ru @eml.ru @mosk.ru @samara24.ru @nn.ru @prm.ru @tut.by @inbox.lv @orsk.ru @3g.ua @sibnet.ru
 
SET usa=@adelphia.net @aim.com @ameritech.net @aol.com @atlanticbb.net @att.net @attbi.com @bellsouth.net @bresnan.net @buckeye-express.com @cebridge.net @centurylink.net @charter.net @comcast.net @cox.net @earthlink.net @email.com @embarqmail.com @flash.net @frontier.com @frontiernet.net @fuse.net @games.com @gvtc.com @hargray.com @hughes.net @icloud.com @insightbb.com @ix.netcom.com @juno.com @knology.net @lineone.net @love.com @lycos.com @mac.com @mail.com @mchsi.com @me.com @mycompany.com @myfairpoint.net @mypacks.net @netscape.com @netscape.net @netzero.net @ntlworld.com @nvbell.net @optimum.net @optonline.net @pacbell.net @peoplepc.com @pldi.net @prodigy.net @ptd.net @rcn.com @roadrunner.com @rocketmail.com @rr.com @sbcglobal.net @sccoast.net @skybest.com @skyline.org @snet.net @suddenlink.net @surewest.net @swbell.net @torchlake.com @twc.com @usa.com @verizon.net @wans.net @wavecable.com @windstream.net @wmconnect.com @wow.com @wowway.com @yahoo.com @ygm.com @ymail.com @zoominternet.net @live.com @outlook.com @hotmail.com @msn.com @gmail.com @rediff.com @telenet.be @fastmail.com @fastmail.us
 
SET france=@meteo.fr @francetv.fr @free.fr @libertysurf.fr @nordnet.fr @aliceadsl.fr @orange.fr @wanadoo.fr @neuf.fr @numericable.fr @sfr.fr @netc.fr @net-c.fr @yahoo.fr @aol.fr @gmx.fr @laposte.net @lycos.fr @telenet.be @voila.fr @noos.fr @laposte.fr @club-internet.fr @caramail.fr @fastmail.pl @netcourrier.com @francemel.fr
 
SET germany=@mail.de @hamburg.de @koeln.de @arcor.de @freenet.de @netcologne.de @t-online.de @web.de @yahoo.de @aol.de @gmx.de @tonline.de @lycos.de @fantasymail.de @berlin.de @emailn.de @ok.de @fastmail.de
 
SET poland=@wp.pl @interia.pl @o2.pl @poczta.fm @intmail.pl @pisz.to @interia.eu @interia.com @pisz.to @ogarnij.se @vip.interia.pl @interiowy.pl @adresik.net @pacz.to @op.pl @onet.pl @poczta.onet.pl @tlen.pl @neostrada.pl @yahoo.pl @net-c.pl @netc.pl @gazeta.pl @vp.pl @onet.eu @buziaczek.pl @poczta.pl @autograf.pl @go2.pl
Но у меня не получается сделать так чтобы отсеивал именно одну группу доменов из определённого файла при запуске, а потом закрывался

Добавлено через 35 секунд
Необходимо написать скрипт, который будет отсеивать мусорные домены из txt файла
0
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
30.12.2017, 17:10 8
Цитата Сообщение от Mr_Asdshka Посмотреть сообщение
скрипт, который будет отсеивать мусорные домены из txt файла
Согласно этому требованию уже сделано и работает
0
9 / 8 / 5
Регистрация: 13.05.2015
Сообщений: 244
30.12.2017, 17:15  [ТС] 9
Цитата Сообщение от vavun Посмотреть сообщение
Согласно этому требованию уже сделано
Он мгновенно закрывается, не выполнив код
0
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
30.12.2017, 17:18 10
Цитата Сообщение от Mr_Asdshka Посмотреть сообщение
Он мгновенно закрывается, не выполнив код
добавьте паузу и @echo on и смотрите что не так
0
30.12.2017, 17:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2017, 17:18
Помогаю со студенческими работами здесь

Оставить в файле только те фразы, которые содержат не менее трех
Всем доброго времени суток. Нужна ваша помощь. Я написал программу под задачу: Дан файл, содержащий...

Найти в файле все слова которые содержат двойные буквы
Найти в файле f все слова которые содержат двойные буквы и сложить с них новый файл q.

Удалить из матрицы А строки, которые содержат все повторяющиеся элементы первой строки
Дана матрица A состоящая из М строк и N столбцов. Элементами матрицы являются натуральные числа....

Скрипт - удаление строк, которые содержат определенный символ в файле .txt
Товарищи, приветствую. Нужна ваша помощь. Честно пытался сам разобраться, гуглил, читал много...

Команда по удалению строки в ini-файле
При работе с ini-файлами есть команды создания и чтения записи записи из определенного раздела. А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru