Показать полную графическую версию : [решено] Открыть файл если есть строка в файле .txt
Здравствуйте, перепробовал много разных вариантов. Вобщем есть txt файл, в котором нужно отследить наличие определенной строки, и если она таки существует, открыть файл html.
Пробовал:
findstr /r /c: "Текст строки" E:\17-07-2013.txt >nul && goto C:\Users\Admin\Desktop\file.html
Заранее спасибо.
Что в реальности в «Текст строки»? Почему «goto», а не «start»?
Sphinx114
17-07-2013, 17:09
findstr /r /c:"^Текст строки$" E:\17-07-2013.txt >nul && start "" notepad C:\Users\Admin\Desktop\file.html
^ и $ символы начала и конца строки, без них будет искать данный кусок в строке
файл откроется в блокноте, без notepad - в браузере по умолчанию
Что в реальности в «Текст строки»? Почему «goto», а не «start»?
Текст: "Сделан выбор"
findstr /r /c:"^Текст строки$" E:\17-07-2013.txt >nul && start "" notepad C:\Users\Admin\Desktop\file.html
Попробовал код, вводил в ручную в cmd. Файл не открылся, пробовал без notepad, нужен вызов в браузере.
Sphinx114
17-07-2013, 17:44
Файл не открылся »
Батник и E:\17-07-2013.txt в 866 кодировке? Видимо файл у вас в 1251 кодировке. Если так, то надо подумать.
Вот что уже вышло:
Прописывая код вручную в cmd (без файла батника), я поставил поиск числа 123 в файле - так заработало. Но при поиске русских слов - не находит.
Файл, который анализируется на наличие слов имеет кодировку ютф-8.
Пересохранил этот самый файл в кодировку 866 - заработало. Но можно ли обойти это пересохранение?
Sphinx114
17-07-2013, 18:09
denntl, кроме как прогнать файл через iconv (сторонняя утилита) не знаю.
iconv -cs -f utf-8 -t cp866 E:\17-07-2013.txt | findstr /c:"Сделан выбор" && start "" C:\Users\Admin\Desktop\file.html
Скачал iconv.dll, переместил в System32, в SysWOW64 ввожу в cmd - не реагирует
Работает:
win_iconv -f UTF-8 -t cp866 "E:\17-07-2013.txt" |>nul find /i "Текст строки" && start "" "C:\Users\Admin\Desktop\file.html"
Sphinx114
17-07-2013, 19:19
iconv http://rghost.ru/47487041
Теперь еще одна интересная задача.
Есть тот же txt файл логов, в котором циклически добавляются строки, типа:
Запуск программы. числоX
Программа числоХ. Число Х
Запуск программы. числоX
Программа числоХ. Число Х
Запуск программы. числоX
Программа числоХ. Число Х
Там где Х - это переменное значение.
Можно ли при появлении Новой строки "Программа числоХ. Число Х" с произвольными значениями Х, копировать эту строку в конец второго файла и открывать его? start "" "C:\Users\Admin\Desktop\file.html"
Нужно так делать в том случае, если файл изменился (добавлись строки), и брать только последнюю строку.
denntl, кроме как прогнать файл через iconv (сторонняя утилита) не знаю. »
По мне — так проще WSH использовать: всё ж «искаропки».
denntl, можно, если «тот же txt файл логов» не держится постоянно открытым. Но нагрузка будет большая, разве что работать с текстовым файлом как с базой данных или, например, LogParser'ом.
Смысл сего действа в чём?
vova_kansk
02-10-2013, 12:29
а как перименовать или переместить файл в котором встретилась искомая строка
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.