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

Компьютерный форум 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

 

Ветеран


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

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


zion87,
Код: Выделить весь код
@echo off

for /f "tokens=*" %%i in (' dir /b /s /a-d d:\temp\readme.txt ') do call:1 "%%i"
goto:eof

:1

:: хрома нет

for /f %%i in (' more +4 %1 ') do start "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" %%i && goto:eof

Последний раз редактировалось Foreigner, 07-01-2012 в 10:13.

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

Отправлено: 10:01, 07-01-2012 | #2



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

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


Аватара для zion87

Старожил


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

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


все всем спасибо вроде сам разобрался
Код: Выделить весь код
@echo off
for /f "tokens=*" %%i in (' dir /b /s /a-d D:\temp\readme.txt ') do (
 call:1 "%%i"
)
start/wait temp.txt
del temp.txt
goto:eof
:1
for /f %%i in (' more +0 %1 ') do echo %%i>>temp.txt && (
 for /f %%i in (' more +1 %1 ') do echo %%i>>temp.txt && (
  for /f %%i in (' more +5 %1 ') do echo %%i>>temp.txt && goto:eof
 )
)

Отправлено: 17:37, 07-01-2012 | #3


Аватара для zion87

Старожил


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

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


опять вопрос нарисовался можно как то решить проблему с пробелами
если выполнить команду
Код: Выделить весь код
for /f %%i in (' more +1 %1 ') do echo %%i>>temp.txt
то строка которая выглядит на самом деле так
HTML код: Выделить весь код
net user

запишется в блокноте только до пробела тобеж только net, а как ее полностью вывести???

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


Старожил


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

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


По умолчанию for считает разделителем пробел или символ табуляции. Поэтому, чтобы получить всю строку, нужно или сменить символ разделителя по умолчанию, или, что будет проще - сделать вот так:
Код: Выделить весь код
For /F "tokens=*" %%I In ('More +1 %1') Do (Echo %%I>>temp.txt)
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:27, 07-01-2012 | #5


Аватара для zion87

Старожил


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

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


а то есть можно сделать во так
Код: Выделить весь код
for /f "delims=*" %%i in (' more +1 %1 ') do echo %%i>>temp.txt

Отправлено: 19:15, 07-01-2012 | #6


Ветеран


Contributor


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

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


Вот вариант без Dir и More,
Код: Выделить весь код
Echo Off
cls
Set Where=d:\temp

FOR /R "%Where%" %%f IN (readme.txt) DO Call :Inet "%%f"
GoTo :Eof

:Inet
FOR /F "usebackq skip=4 delims=" %%s IN (%1) DO (
   Echo %%s
   GoTo :Eof
)
Вместо
Echo %%s
НапишИте любую команду, которая Вам необходима, с 5 строкой из readme.txt, которая содержится в переменной %%s.

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


Последний раз редактировалось megaloman, 07-01-2012 в 20:06.

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

Отправлено: 19:53, 07-01-2012 | #7


Аватара для zion87

Старожил


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

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


Код: Выделить весь код
FOR /F "usebackq tokens=5 delims== " %%s IN (htmp.txt) DO chrom.exe - %%s
megaloman, строчка не проходит - вот ее результат
Код: Выделить весь код
Непредвиденное появление: %%s.
да и там 2 равно:
type="text" value="http://...."

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


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


Ветеран


Contributor


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

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


Вложения
Тип файла: txt 21.bat.txt
(83 байт, 4 просмотров)
Тип файла: txt htmp.txt
(169 байт, 4 просмотров)

Мне удалось повторить это сообщение только в том случае, если запускать строку в командном окне (в этом случае вместо %%s надо везде использовать %s и проблема разрешится). Я предполагал, что строка используется в батнике - отсюда и %%s
С Вашим примером из поста файла htmp.txt у меня работает, и из батника с %%s и из командного окна с %s. Высылаю свой батник т файл htmp.txt. Пришлите Ваш htmp.txt

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

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

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


Аватара для zion87

Старожил


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

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


вот блин и на самом деле работает! ))))))))))))))))
СПАСИБО ОГРОМНОЕ megaloman!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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



Компьютерный форум 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




 
Переход