Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Нужен Bat-ник который будет искать слово в текстовом файле .txt (http://forum.oszone.net/showthread.php?t=207835)

Alexzander_bas 30-05-2011 06:16 1684870

Нужен Bat-ник который будет искать слово в текстовом файле .txt
 
Нужен Bat-ник который будет искать слово в текстовом файле .txt. По результатам поиска нужно записать в переменную 1 или 0(1- если слово найдено, 0- если не найдено). данную переменную планируется использовать с оператором IF (если =1, то делаем то то, если равно 0 то делаем другое)

Foreigner 30-05-2011 06:35 1684874

Alexzander_bas,
Код:

@echo off
setlocal

set "tosearch=word"
1>nul findstr "\<%tosearch%\>" 1.txt && set "var=1" || set "var=0"
if %var% equ 1 (echo doing something) else (echo doing other)

Можно и без переменной, а сразу по результату поиска. ( команда && успех || неудача )

Alexzander_bas 30-05-2011 08:08 1684891

Спасибо, батник работает. Можно еще один глупый вопрос: Как искать фразу? допустим Copy complete. чтоб искалась именно эта последовательность слов+ с учетом заглавной буквы.

Foreigner 30-05-2011 20:02 1685281

Цитата:

Цитата Alexzander_bas
Как искать фразу? допустим Copy complete »

Код:

findstr /c:"Copy complete"

shao 01-06-2011 00:02 1686031

Цитата:

Цитата Foreigner
Как искать фразу? »

А как найти одинаковые фразы/строки и удалить их.
И , как второй вариант : удалить всё , кроме указанных строк/фраз/слов ?
Спасибо!

amel27 01-06-2011 07:30 1686129

shao, уточните задачу

shao 02-06-2011 01:24 1686802

Например, текст:

Код:

Folder\aaa.dll
- файл перемещён

Folder2\bbb.dll
- файл перемещён

Folder3\ccc.dll
- файл перемещён

и т.д. .............

1. Найти и удалить все заданные одинаковые строки : "- файл перемещён"

2. Удалить всё , кроме указанных строк : "- файл перемещён"

Я не силен в командной строке, только осваиваю. Может всё намного проще ?
Может в первом случае можно просто вывести в текстовый файл список всех строк за исключением указанной, с помощью команды :
Код:

find /V
???

Спасибо !

Foreigner 02-06-2011 06:14 1686840

shao,
Код:

1>1.tmp findstr /v /c:"- файл перемещён" 1.log
move 1.tmp 1.log

Для второго так же, но без ключа /v. Для кириллицы кодировка шаблона поиска должна совпадать с кодировкой лога.

shao 02-06-2011 09:33 1686905

Foreigner, а если не затруднит (для лучшего понимания) можете объяснить работу кода , пожалуйста....

Foreigner 02-06-2011 17:57 1687214

shao,
1>1.tmp -- записываем stdout в файл 1.tmp
findstr /v /c:"pattern" -- находим в файле 1.log все строчки которые ( ключ /v ) не содержат искомую строку ( ключ /с ),
заменяем файлы

Все это есть в справке.

Arttem 06-06-2011 16:51 1689413

Цитата:

set "tosearch=word"
1>nul findstr "\<%tosearch%\>" 1.txt && set "var=1" || set "var=0"
if %var% equ 1 (echo doing something) else (echo doing other)
Возможно, чтобы findstr искала %tosearch% по первой или второй строкам?
И чтобы %var% был номером строки?
Помогите пожалуйста!


Время: 04:47.

Время: 04:47.
© OSzone.net 2001-