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

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

registeruser1 11-02-2011 23:11 1610715

Преобразование текстовых ссылок в гипертекстовые.
 
Доброго дня уважаемые.
Помогите с проблемкой, есть батник -
Код:

@echo off
1>>%systemdrive%\links.htm (
echo ^<body bgcolor="#336699"^>
echo ^<title^>links^</title^>
echo ^<div align="left"^>
echo ^<font color="#336699"^>
echo ^<hr size="4"^>
echo ^</div^>
echo ^<div align="left"^>
echo ^<font color="#ffffff"^>
echo ^<pre^>
type "C:\links.txt"
echo ^</pre^>
echo ^</H3^>
echo ^</div^>
echo ^<div align="left"^>
echo ^<font color="#336699"^>
echo ^<hr size="4"^>
echo ^</div^>
echo ^<div align="left"^>
echo ^</div^>
)

...и соответственно сам links.txt который присутствует в коде.
Батник копирует весь текст из links.txt в links.htm создавая htm страницу, НО, проблема в том что текст там в таком формате -

Код:

Компьютерный форум Ru.Board
http://forum.ru-board.com/
1297422373
-1
Операционные системы :: Компьютерный форум Ru.Board
http://forum.ru-board.com/forum.cgi?forum=62
1297422377
-1

и нужно что бы он пропускал две не нужные строки типа -
Код:

1297422373
-1

и делал нормально ссылки типа -
<a href="http://forum.ru-board.com">Форум Ru.Board
Т.е другими словами делал из текстовой ссылки в файле links.txt гиперссылку в файл links.htm, пропуская весь ненужный мусор...

По сути нужно как-то добавлять к ссылкам <a href=" в начале каждой ссылки и знаки "> в конце, ну и после "> переносить само название.
Вот с этой частью я не могу справиться, помогите пож-ста...
Заранее благодарю...

amel27 12-02-2011 07:16 1610836

Цитата:

Цитата registeruser1
нужно как-то добавлять к ссылкам <a href=" в начале каждой ссылки и знаки "> в конце, ну и после "> переносить само название »

Код:

SETLOCAL EnableDelayedExpansion& set "X="
for /f "delims=" %%a in ('findstr /xvrc:"[-0-9 ]*" links.txt') do (
if defined X (echo ^<a href="%%a"^>!X!& set "X=") else set "X=%%a")
ENDLOCAL


registeruser1 12-02-2011 07:57 1610844

amel27
Спасибо огромное, очень помог..! Внедрил твой код так -

Код:

@echo off
SETLOCAL EnableDelayedExpansion& set "X="
1>>"C:\links.htm" (
echo ^<charset=utf-8">
echo ^<body bgcolor="#336699"^>
echo ^<title^>Links^</title^>
echo ^<div align="left"^>
echo ^<font color="#336699"^>
echo ^<hr size="4"^>
echo ^</div^>
echo ^<div align="left"^>
echo ^<font color="#ffffff"^>
echo ^<pre^>
echo ^<font size="4"^>
for /f "delims=" %%a in ('findstr /xvrc:"[-0-9 ]*" "C:\links.txt"') do (
if defined X (echo ^<a href="%%a"^>!X!& set "X=") else set "X=%%a")
echo ^</pre^>
echo ^</H3^>
echo ^</div^>
echo ^<div align="left"^>
echo ^<font color="#336699"^>
echo ^<hr size="4"^>
echo ^</div^>
echo ^<div align="left"^>
echo ^</div^>
)
ENDLOCAL

Но первую строку после ссылки с набором цифр он все-таки тоже пишет -
1297422373
Как от нее можно избавится исходя из получившегося кода..?
Благодарю...

amel27 12-02-2011 11:10 1610898

Цитата:

Цитата registeruser1
первую строку после ссылки с набором цифр он все-таки тоже пишет »

странно, у меня на XP SP3 RUS не пишет... поэкспериментируйте с разными данными,
следующая команда должна отсеивать строки, состоящие (только) из цифр:
Код:

findstr /xvrc:"[-0-9 ]*" "C:\links.txt"

registeruser1 12-02-2011 11:19 1610902

Ну вроде теоретически так, вижу фильтр для цифр, однако...
Но у меня XP SP3 ENG, хотя разницы ни какой же...

П.с.
Ааа, вот смотрите он добавляет лишние теги -
Код:

<a href="http://forum.ru-board.com/">Компьютерный форум Ru.Board
<a href="-1">1297422373

Вторая строка не нужна там, как от нее избавится..?

amel27 12-02-2011 12:11 1610942

Цитата:

Цитата registeruser1
теоретически так, вижу фильтр для цифр »

ключ /V обращает включение на исключение данных,
у меня эта команда для links.txt из топика выдаёт:
Код:

Компьютерный форум Ru.Board
http://forum.ru-board.com/
Операционные системы :: Компьютерный форум Ru.Board
http://forum.ru-board.com/forum.cgi?forum=62

может у этого links.txt какая-то особенная кодировка?

registeruser1 12-02-2011 12:15 1610946

Ну мне пришлось поставить echo ^<charset=utf-8">, может действительно из-за кодировки...?

amel27 12-02-2011 12:18 1610953

registeruser1, тогда лучше выложить целиком файл links.txt, чем гадать

registeruser1 12-02-2011 12:21 1610957

Вложений: 1
..Вот он -

amel27 12-02-2011 12:42 1610976

registeruser1, ну да, UTF-8, но проблема даже не в этом, а в том, что строки заканчиваются на LF вместо стандартного для Windows CRLF, попробуйте изменить команду FINDSTR:
Код:

findstr /bvrc:"[-0-9]" "C:\links.txt"

registeruser1 12-02-2011 13:36 1610997

amel27
Супер, все заработало, спасибо большое..! Очень выручили меня...
Можно тему закрывать...!


Время: 22:25.

Время: 22:25.
© OSzone.net 2001-