wolf0425
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: то информация не сохраняется в txt-файл. Вместо этого по завершению операции в txt-файле запись: | неудивительно - у тебя же не определена переменная %title%, содержимое которой ты просишь напечатать (с перенаправлением) ты наверно это хотел написать: Код: @echo off setlocal pushd "C:\html" for %%i in (*.html) do ( 1>>c:\out.txt grep.exe -Pio ^<h[1-2].*?^>.*?^</h[1-2]^> %%i ) popd | (это если ты хотел напечатать в один файл все однострочные заголовки всех *.html) Добавлено: ASE_DAG Цитата: Все верно, несколько постов выше, если вы не заметили, говорили (т. NIKZZZZ, кажется) о том, что даже внутри двойных кавычек угловые кавычки надо экранировать. | ну если очень хочется - то можно и экранировать. А вообще, если эта строка не внутри for /f - то незачем, замечательно работает и без экранирования через ^, вполне хватает кавычек, неоднократно проверено. Цитата: а) Аналогично (плюс циркумфлекс из регэкспа по-идее не дойдет до Седа). | аналогично - я проверяю работоспособность всего кода который отправляю на форум, экспериментально. Когда не проверяю - предупреждаю. так что со своими ненаучными идеями - ты зря лезешь, проблема у юзера явно не в экранировании. Alexey87 Цитата: В файле c:\html\0125.html есть аж целых 12 | ну вообще-то нужно предупреждать, что <h1 у тебя на одной строке, а </h1> - уже на следующей... сходу не вспомню как это на лету склеивается sed'ом - вон зато ASE_DAG знает еще и awk. И сколько строк тебе печатать с такого заголовка? upd: если строк заголовка всегда не более двух - то можно так: Код: sed.exe -n -r "/<h[1-6]/ {N;s/\n/ /gi;s/^.*(<h[1-6][^>]*>[^<]*<\/h[1-6]>).*$/\1/gip}" <0125.html >out.txt | (склеивает в одну строку и печатает, склейку можно выкинуть - печатать станет как в файле,т.е. в 2 строки) | Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 10:39 05-05-2011 | Исправлено: wolf0425, 14:00 05-05-2011 |
|