Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] присвоить строчке из .txt переменную

Ответить
Настройки темы
CMD/BAT - [решено] присвоить строчке из .txt переменную

Аватара для zion87

Старожил


Сообщения: 263
Благодарности: 69

Профиль | Отправить PM | Цитировать


Изменения
Автор: zion87
Дата: 08-01-2012
Привет великим и всезнающим!!!!
Вообщем такое дело, есть N-ное количество папок в каталоге d:\temp, в каждой такой папке есть файл readme.txt

все readme.txt с разным содержанием но строчки у всех расположены так
HTML код: Выделить весь код
123 username - vkontakte.ru http://www.prsrdksdjf.ru http://www.vk.ru/bsadjbsd Файл загружен: 06.01.2012

вот в этом файле 5 строчка меня и интересует собственно, нужно запустить браузер(например chrom) c 5 строчкой из каждого файла
Код: Выделить весь код
chrome.exe (из 1го readme.txt) - http://www.vk.ru/bsadjbsd (из 2го readme.txt) - http://www.odn.ru/bsadjbsd
и так далее использую все 5-тые строчки из файлов readme.txt лежащих во всех папках каталога d:\temp\

Отправлено: 02:41, 07-01-2012

 

Аватара для zion87

Старожил


Сообщения: 263
Благодарности: 69

Профиль | Отправить PM | Цитировать


а как сделать так?
из этого
HTML код: Выделить весь код
<p>Последнее скачивание: 08.01.2012 13:45</p> <p><input type="text" value="http://wf5.ru/re/joZAe2zBFDP/Rzs8AvI7t" readonly="readonly" onclick="this.select();" style="width:240px" /></p> <p>Последнее скачивание: 07.01.2012 19:15</p> <p><input type="text" value="http://wf5.ru/re/W6g2rRZDuPBh/ZPP6STs" readonly="readonly" onclick="this.select();" style="width:240px" /></p> дальше могут быть такие же строки

сделать это в блокноте
HTML код: Выделить весь код
Последнее скачивание: 08.01.2012 13:45 "http://wf5.ru/re/joZAe2zBFDPEp/Rzs8AvI7t" ----------------------------------------------------------- Последнее скачивание: 07.01.2012 19:15 "http://wf5.ru/re/joZAe2zBFDPEp/Rzs8AvI7t" ----------------------------------------------------------- дальше могут быть такие же строки

я предполагаю что как то так используя код megaloman,
Код: Выделить весь код

@Echo off
FOR /F "usebackq tokens=* delims= " %%z IN (temp.txt) DO echo %%z>>1.txt && (
  FOR /F "usebackq tokens=5 delims== " %%z IN (temp.txt) DO echo %%z>>1.txt && (
    echo -------------------->>1.txt
  )
)
но выводится вот так
HTML код: Выделить весь код
<p>Последнее скачивание: 08.01.2012 13:45</p> "http://wf5.ru/re/joZAe2zBFDPE/Rzs8AvI7t" ----------------------------------------------------------- "http://wf5.ru/re/W6g2rRZDuPB/ZPP6STs" -------------------- <p><input type="text" value="http://wf5.ru/re/joZAe2zBFDPE/Rzs8AvI7t" readonly="readonly" onclick="this.select();" style="width:240px" /></p> "http://wf5.ru/re/joZAe2zBFDPE/Rzs8AvI7t" -------------------- "http://wf5.ru/re/W6g2rRZDuPBh1/ZPP6STs" -------------------- <p>Последнее скачивание: 07.01.2012 19:15</p> "http://wf5.ru/re/joZAe2zBFDP/Rzs8AvI7t" -------------------- "http://wf5.ru/re/W6g2rRZDuIlj/ZPP6STs" -------------------- <p><input type="text" value="http://wf5.ru/re/W6g2rRZDuP/ZPP6STs" readonly="readonly" onclick="this.select();" style="width:240px" /></p> "http://wf5.ru/re/joZAe2zBFDP/Rzs8At" -------------------- "http://wf5.ru/re/W6g2rRZP/ZPP6STs" --------------------

в чем моя ошибка

Последний раз редактировалось zion87, 08-01-2012 в 16:37.


Отправлено: 15:56, 08-01-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для zion87

Старожил


Сообщения: 263
Благодарности: 69

Профиль | Отправить PM | Цитировать


вот так получается, но выводятся только первые 2 строки, а остальные игнорируются
Код: Выделить весь код
@echo off
for /f "usebackq tokens=* delims== " %%i IN (temp.txt) do echo %%i>>1.txt && (
  for /f "usebackq tokens=5 delims== " %%z in (temp.txt) do echo %%z>>1.txt && (
    echo ------------------------------------------------------------------>>1.txt && goto:eof
  )
)
goto:eof
вот что выводится
HTML код: Выделить весь код
<p>Последнее скачивание: 08.01.2012 13:45</p> "http://wf5.ru/re/joZAe2zBFDPE/Rzs8AvI7t" ----------------------------------------------------------------- дальше пусто


Отправлено: 18:26, 08-01-2012 | #12


Ветеран


Contributor


Сообщения: 2733
Благодарности: 1698

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off

chcp 1251 >Nul
Set Log=Лог файл.txt
Del "%Log%" >Nul 1>Nul 2>Nul

Set i=1

FOR /F "usebackq tokens=3,5 delims=>=<" %%s IN (htmp.txt) DO Call :Bloknot "%%s" "%%t"
GoTo :Eof

:Bloknot

Set url=%~2

If %i%==1 (
   Set i=2
   Echo %~1>>"%Log%"
) Else (
   Set i=1
   Echo %url:~0,-9%>>"%Log%"
   Echo -------------------------------------------->>"%Log%"
)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:57, 08-01-2012 | #13


Аватара для zion87

Старожил


Сообщения: 263
Благодарности: 69

Профиль | Отправить PM | Цитировать


РАБОТАЕТ!!! УРА, СПАСИБО!

Отправлено: 19:02, 08-01-2012 | #14


Аватара для zion87

Старожил


Сообщения: 263
Благодарности: 69

Профиль | Отправить PM | Цитировать


добавил кое что в код megaloman и столкнулся с проблемой
Код: Выделить весь код
у меня выше тоже есть код, но я думаю он не должен повлиять, ведь если нет кода
выделенного красным все проходит отлично...
chcp 1251 >nul
del "%log%" >nul 1>nul 2>nul
set i=1
for /f "usebackq tokens=3,5 delims=>=<" %%s in (temp.txt) do Call :8 "%%s" "%%t"
if exist temp.txt del temp.txt
goto :eof
:8
set url=%~2
If %i%==1 (
   set i=2
   echo %~1>>"%log%"
) else (
   set i=1
   echo %url:~0,-9%>>"%log%"
)

for /f "tokens=*" %%d in (' dir /b /s /a-d %directory%\readme.txt ') do call:9 "%%d"
goto:eof
:9
for /f %%e in (' more +4 %1 ') do if %%e==%url:~0,-9% for /f "tokens=*" %%f in (' more +1 %1 ') do echo %%f>>"%log%" && (
  echo ------------------------------------------------------------>>"%log%" && goto:eof
)
кодировка походу сбилась, вот что на выходе
Код: Выделить весь код
Последнее скачивание: 08.01.2012 13:45
"http://wf5.ru/re/joZAe2zBFDPE/Rzs8AvI7t"
пользователь 1 - www.s.ru 
------------------------------------------------------------ 
Последнее скачивание: 07.01.2012 19:15
"http://wf5.ru/re/W6g2rRZDu/ZPP6STs"
Пользователь 2 - www.dsad.ru 
------------------------------------------------------------
свои строчки добавил с целью сравнения, тобеж если адрес лежащий 5 строкой в моем readme совпадает с переменной %url:~0,-9% то в %log% записывается имя пользователя (2 строка readme- выводиться в нормальной КИРИЛИЦЕ) которому принадлежит данная ссылка, есть идеи как исправить???

Последний раз редактировалось zion87, 09-01-2012 в 17:44.


Отправлено: 17:27, 09-01-2012 | #15


Аватара для zion87

Старожил


Сообщения: 263
Благодарности: 69

Профиль | Отправить PM | Цитировать


если нужно то вот весь код
Код: Выделить весь код
@echo off 
title Report-Sites & set siz=109 & set size=189 & set log=report.nfo 
set file=temp.txt & if exist %log% del %log%
:one
color 0A & cls & echo ‚ўҐ¤ЁвҐ Ё¬п ¤ЁаҐЄв®аЁЁ б д*©«*¬Ё readme.nfo
echo Ё«Ё (-) ¤«п ўлЎ®а* бв**¤*ав*®© ¤ЁаҐЄв®аЁЁ.. & set /p directory=
If /i "%directory%"=="-" set directory=D:\temp
dir /s /p %directory%\readme.nfo>nul || (
  color 0C && cls && echo ‚ ¤ҐаЁЄв®аЁЁ %directory% д*©«®ў readme.nfo *Ґ ®Ў**а㦥*® && (
    pause && goto :one
  )
)
cls & echo %directory% & echo @echo off>temp.bat & echo color 09>temp.bat
for /f "tokens=*" %%i in (' dir /b /s /a-d %directory%\readme.nfo ') do call:1 "%%i"
echo exit>>temp.bat & start/wait temp.bat & del temp.bat 
for /f "tokens=*" %%x in (' dir /b /s /a-d *.html ') do cls && (
   echo processing of files, please wait && call:2 "%%x"
)
del temp.txt && goto :5 & goto:eof
:5
if exist temp.txt del temp.txt
for /f "tokens=*" %%w in (' dir /b /s /a-d *.html ') do call:6 "%%w"
del *.html & goto :7 & goto:eof
:6
for /f "delims=*" %%a in (' more +64 %1 ') do echo %%a>>temp.txt && (
  for /f "delims=*" %%b in (' more +62 %1 ') do echo %%b>>temp.txt && goto:eof
)
goto:eof
:4
for %%L in (%file%) do if /i %%~zL LSS %siz% del %%x && call:2 "%%x"
goto:eof
:2
rem ищем НЕТ
for /f "delims=*" %%z in (' more +64 %1 ') do echo %%z>temp.txt && goto :4 && goto:eof
:1
rem  5 строка из readme.nfo
for /f %%c in (' more +4 %1 ') do echo wget.exe %%c.html>>temp.bat && goto:eof
:7
chcp 1251 >nul & del "%log%" >nul 1>nul 2>nul & set i=1
for /f "usebackq tokens=3,5 delims=>=<" %%s in (temp.txt) do Call :8 "%%s" "%%t"
if exist temp.txt del temp.txt
copy /y  report.nfo "%userprofile%\Рабочий стол\">nul && del report.nfo>nul
rem ------------------------------------
goto :eof
:8
set url=%~2
If %i%==1 (
   set i=2 
   echo %~1>>"%log%"
) else (
   set i=1
   echo %url:~0,-9%>>"%log%"
)
for /f "tokens=*" %%d in (' dir /b /s /a-d %directory%\readme.nfo ') do call:9 "%%d"
goto:eof
:9
for /f %%e in (' more +4 %1 ') do if %%e==%url:~0,-9% for /f "tokens=*" %%f in (' more +1 %1 ') do echo %%f>>"%log%" && (
  echo ------------------------------------------------------------>>"%log%" && goto:eof
)

Отправлено: 14:52, 10-01-2012 | #16


Аватара для zion87

Старожил


Сообщения: 263
Благодарности: 69

Профиль | Отправить PM | Цитировать


Огромнеейшее спасибо megaloman, все получилось!!!

Отправлено: 18:19, 14-01-2012 | #17



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] присвоить строчке из .txt переменную

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Разобрать txt, на строки и назначить каждой переменную campbell Скриптовые языки администрирования Windows 6 26-11-2011 01:32
CMD/BAT - вытащить из 3-x txt файлов строки в 4-й txt и отправить его в шару на сервер campbell Скриптовые языки администрирования Windows 1 10-11-2011 09:59
Любой язык - [решено] Скрипт использующий переменную из файла .txt XXXp Скриптовые языки администрирования Windows 27 18-05-2011 21:34
CMD/BAT - [решено] Ввод данных в переменную из txt-файла river123 Скриптовые языки администрирования Windows 1 10-01-2011 18:43
[решено] Вставить строчку из одного txt в оределённое место другого txt ZeroCrash AutoIt 7 13-07-2009 07:35




 
Переход